ORA - 01722

Oracle

22/09/2003

Não consigo solucionar o problema ORA - 01722, alguem já passou por algo semelhante?


Marcio.theis

Marcio.theis

Curtidas 0

Respostas

Eduardo Pereira

Eduardo Pereira

22/09/2003

Já tive este erro e tinha a ver com o suporte a línguas estrangeiras do Oracle. A solução foi, para a sessão corrente do Oracle, ajustar os caracteres de separador decimal a agrupamento de dígitos, com o seguinte comando:

alter session set nls_numeric_characters = ´.,´

Com o dbExpress, assim que a conexão é aberta, execute o seguinte:

MinhaConexao.ExecuteDirect(´alter session set nls_numeric_characters = ´´.,´´´);

onde ´MinhaConexao´ é um TSQLConnection. Observe que são duas aspas simples antes e três depois dos caracteres ponto e vírgula.

[]´s
Eduardo Pereira


GOSTEI 0
Margaridi

Margaridi

22/09/2003

Um campo numérico está recebendo um valor inválido.

Como o Eduardo disse, pode ser problemas de configuração de línguas.

Também, pode ser a configuração local da máquinas (Painel de Controle > Configurações Regionais) que está com formato de moeda diferente do que você está passando na sua aplicação.

Pode ainda, ser uma falha de programação, onde está sendo atribuída uma variável varchar2 para uma variável numérica.


GOSTEI 0
POSTAR