Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andre Renato

[Resolvido] Invalid Number

Recommended Posts

Galera, seguinte...

 

Tem um aplicativo em Delphi que, após uma migração de firewall, tá dando o famigerado ORA-01722 (invalid number).

O problema é que esse erro acontece apenas no client do usuário, até mesmo pelo sqlplus.

 

O comando é o insert abaixo:

 

Insert Into Precos
 (Produto_Id, Coleta_Id, Preco, Valor_Parcela, Numero_Parcelas)
Values
 (693398, 374588, '1299,00', '108,25', ' 12');

 

Testando na minha maquina (tanto pela aplicação quanto pelo sqlplus) funciona normal.

Tentei colocar uma entrada no regedit na HKEY_LOCAL_MACHINE > SOFTWARE > ORACLE > NLS_NUMERIC_CHARACTERS = ., (conforme alguns posts que li), mas continua dando erro.

 

Segue o desc da tabela:

 

coleta_id	integer
produto_id	integer
preco	        float
valor_entrada	float
frete_incluso	number
valor_parcela	float
desc_frete	varchar2(100)
numero_parcelas	integer

Eu não queria ter que abrir o fonte e enfiar um ALTER SESSION em algum lugar...

Alguem tem alguma ideia de como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já verificou as configurações regionais da máquina que roda o aplicativo ?

Deve ser problema do Delphi x Config. Regionais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah é, esqueci de citar... já revirei as Conf. Regionais... tá tudo igual.

Percebi que é algo relacionado ao parâmetro NLS_LANG do regedit.

 

Na minha maquina tava funfando normal, mas depois que eu mudei para AMERICAN_AMERICA.WE8MSWIN1252 e o erro passou a acontecer na minha máquina também.

Agora o engraçado é que, quando eu voltei para PORTUGUESE_BRAZIL.WE8MSWIN1252, o erro continuou acontecendo na minha máquina... ahhh!

 

Não sei mais o que fazer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

após uma migração de firewall

O que exatamente foi alterado ?

 

Local da app Delphi ?

Local do server do Oracle ?

 

O erro é provalvemente porque a aplicação está enviado em um formato e o Oracle espera em outro.

 

Quando se insere na mão via SqlPlus no Oracle um formato decimal você informa como 123.45 ou 123,45 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O firewall foi trocado... mudou a rede, mudou tudo.

Só que tivemos todo o cuidado de alterar os IPs dos bancos (até abri tópico aqui pra dois IPs, lembra?)

 

De resto não foi alterado nada... nenhum local foi movido.

Os testes que eu havia feito na minha máquina e que depois eu não conseguia voltar ao normal, eu acabei desinstalando o Oracle Client da minha máquina e instalando de novo. Aí foi legal, e até mesmo pelo SqlPlus ele tá aceitando numa boa.

 

Outro fato novo (que eu fiquei sabendo ha pouco) é que, nessa mesma maquina que tá com problema, havia um Oracle XE instalado... ou seja, havia duas Homes nela.

Esse XE foi desinstalado esses dias pelo que fui informado, ou seja, algum conflito deve estar rolando.

 

Nesse caso, acredito que a melhor solução seja desinstalar o Oracle Client dessa maquina e instalar de novo já com o Character Set correto (que foi o mesmo que eu instalei na minha máquina).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na mudança da 8 para a 10 do Oracle não basta desinstalar o Oracle tinha que ir no RegEdit e limpar o bichinho na unha.

 

O SqlPlus foi executado no Client ou No Server ? Se foi no Client e passou na boa o problema deve estar no frontEnd, Delphi pelo que você falou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.