ORA-01722: Invalid number
OracleO que significa?
Uma cadeia de caracteres que não pode ser convertida em número foi usada onde é exigido um contexto numérico. Uma conversão implícita ou explícita falhou.
Por que acontece?
Comparação de uma coluna numérica com texto (por exemplo, WHERE num_col = 'ABC'), inserção de um valor contendo letras em um campo numérico, formato inadequado para TO_NUMBER, ou incompatibilidade de separador decimal/de milhar (vírgula vs ponto).
Como resolver
Encontre a expressão com a conversão que falha; geralmente uma condição WHERE ou um valor de INSERT. Garanta a compatibilidade de tipos em comparações texto/número e use conversão explícita quando necessário: TO_NUMBER(my_column) ou TO_CHAR para o lado texto. Impeça a entrada de valores não numéricos em colunas numéricas na camada da aplicação. Atenção à configuração NLS_NUMERIC_CHARACTERS.
Mais entradas deste banco
- ORA-00018Maximum number of sessions exceeded
- ORA-28000The account is locked
- ORA-01578Oracle data block corrupted (file #, block #)
- ORA-02049Timeout: distributed transaction waiting for lock
- enq: TX - row lock contentionEspera: sessão bloqueada em um lock de linha mantido por outra transação
- log file syncEspera: sessão aguardando o LGWR gravar o redo em disco no commit
- db file sequential readEspera: leitura física de bloco único, tipicamente um acesso por índice ou tabela