DBAtlas · Atlas de operações de banco de dados

ORA-01722: Invalid number

Oracle

O 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.

Abrir no DBAtlas →

Mais entradas deste banco