A.Aguiar 0 Denunciar post Postado Janeiro 29, 2007 Olá pessoal.Estou com o seguinte problema: quando tento inserir um numero numa tabela:INSERT INTO TABELA ( NOME, IDADE, ALTURA) VALUES ( 'JOSE', '45', '1.45' )ele da pau, diz que o formato do numero está incorreto, verifiquei e descobri que passando o valor da ALTURA como 1.45 ( sem aspas ) ele funciona, o estranho é que até uns dias atras este select funcionava ( esta num teste do JUnit ).existe algum parametro que possa configurar a inserção dos numeros com aspas, notem que a idade continua com as aspas e não dá problema.Grato Compartilhar este post Link para o post Compartilhar em outros sites
MonTiLLa 1 Denunciar post Postado Janeiro 29, 2007 Opa Amigo, Qual o tipo do campo desta tabela (number, float...)?? Para verificar pode ser dado um DESCRIBE ( DESC ) para verificar o tipo... ex.: DESC tabela; Manda pra comunidade ai para o pessoal ajudar!! http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Compartilhar este post Link para o post Compartilhar em outros sites
A.Aguiar 0 Denunciar post Postado Janeiro 29, 2007 Estes são os campos, o campo que está ocorrendo o erro é o ALTURA.NOME VARCHAR(50)IDADE INTSEXO CHAR(1)NASCIMENTO DATE,ALTURA NUMERIC(4,2)Grato. Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Janeiro 29, 2007 Para números INTEIROS o Oracle aceita ' (ASPAS SIMPLES), porém para números com casas decimais NÃO. Para acabar com o problema, basta retirar as ' (ASPAS) do valor de ALTURA que irá inserir numa boa. Abraços, http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 29, 2007 Rodrigo já fiz insert com aspas para decimal , creio que o problema está na opção de decimal , o Sistema deve estar com virgula. A.Aguiar já tentou ? INSERT INTO TABELA ( NOME, IDADE, ALTURA) VALUES ( 'JOSE', '45', '1,45' ) Compartilhar este post Link para o post Compartilhar em outros sites
A.Aguiar 0 Denunciar post Postado Janeiro 30, 2007 Rodrigo, tentei isso que voce me disse, de passar o numero com virgula e deu certo: também pesquisei e vi que tem um parametro NLS que configura isso NLS_NUMERIC_CHARACTERSsó que o estranho é que na aplicação em java eu testei ele passando o numero com virgula e ele da o mesmo erro. ou seja: Fazer o insert INSERT INTO TABELA ( NOME, IDADE, ALTURA)VALUES ( 'JOSE', '45', '1,45' )pelo Oracle SQL Developer da certo mais pela aplicação java da erro. Compartilhar este post Link para o post Compartilhar em outros sites
A.Aguiar 0 Denunciar post Postado Janeiro 30, 2007 Pessoal consegui resolver, estou agora setando o atributo NLS_NUMERIC_CHARACTERS para a sessão da aplicação com ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.'o problema naum ocorria no Oracle SQL Developer porque ele já setava este parametro em sua sessão.. ah e como eu faço para editar o título do Tópico, para colocar como resolvido? Grato a todos.. Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Janeiro 30, 2007 Alguem sabe qual o motivo que valores númericos serem aceitos com ASPAS (')? Estranho isso... fiz alguns testizinhos e realmente foi o que o MOTTA disse de trocar por vírgula que FUNCIONA! pior que tentei achar algo que falasse sobre o acontecido e nada... Abraços, :unsure: Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 30, 2007 Rodrigo , no ambiente que fiz isto funcinou com ponto , creio que se deva o opção do decimal (ponto ou vírgula). Descobri por puro acidente, fiz um script para gerar um insert e pus os campos char entre aspas por acidente um de valor ficou com aspas e depois reparei que o script funcionou. Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Janeiro 30, 2007 Fiz algumas coisinhas aqui e pelo que percebi ele deve aceitar ASPAS conforme o formato do NLS_NUMERIC_CHARACTERS da sua sessão está. SQL*Plus: Release 10.2.0.1.0 - Production on Ter Jan 30 14:36:03 2007Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> conn rodrigoalmeidaInforme a senha:Conectado.SQL> create table XX (a float, b number(5,2));Tabela criada.SQL> insert into XX values (1.11,22.3);1 linha criada.SQL> insert into XX values ('3.27','32.25');insert into XX values ('3.27','32.25') *ERRO na linha 1:ORA-01722: n·mero invßlidoSQL> insert into XX values (3.27,'32.25');insert into XX values (3.27,'32.25') *ERRO na linha 1:ORA-01722: n·mero invßlidoSQL> alter session set NLS_NUMERIC_CHARACTERS = ',.';SessÒo alterada.SQL> insert into XX values ('3.27','32.25');insert into XX values ('3.27','32.25') *ERRO na linha 1:ORA-01722: n·mero invßlidoSQL> insert into XX values (3.27,'32.25');insert into XX values (3.27,'32.25') *ERRO na linha 1:ORA-01722: n·mero invßlidoSQL> insert into XX values (3.27,32.25);1 linha criada.SQL> insert into XX values (1,11,33,3);insert into XX values (1,11,33,3) *ERRO na linha 1:ORA-00913: valores demaisSQL> insert into XX values ('11,1','11,1');1 linha criada.SQL> Tentei de várias maneiras e QUANDO coloquei o formato ',.', ele só aceito os valores entre ASPAS! Isso deve matar qq desenvolvedor! Abraços, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites