ORA - 01722
Não consigo solucionar o problema ORA - 01722, alguem já passou por algo semelhante?
Marcio.theis
Curtidas 0
Respostas
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
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
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.
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