ORA-01722: Invalid number (número no válido)
Oracle¿Qué significa?
Se usó una cadena de caracteres que no puede convertirse en número donde se requiere un contexto numérico. Falló una conversión implícita o explícita.
¿Por qué ocurre?
Comparar una columna numérica con texto (p. ej., WHERE num_col = 'ABC'), insertar un valor con letras en un campo numérico, un formato inadecuado para TO_NUMBER o una discrepancia de separador decimal/de miles (coma frente a punto).
Cómo solucionarlo
Encuentre la expresión con la conversión fallida; normalmente una condición WHERE o un valor de INSERT. Asegure la compatibilidad de tipos en las comparaciones texto/número y use conversión explícita cuando sea necesario: TO_NUMBER(my_column) o TO_CHAR para el lado de texto. Impida la entrada de valores no numéricos en columnas numéricas en la capa de aplicación. Tenga en cuenta el parámetro NLS_NUMERIC_CHARACTERS.
Más entradas de este motor
- ORA-00018Maximum number of sessions exceeded (se superó el número máximo de sesiones)
- ORA-28000The account is locked (la cuenta está bloqueada)
- ORA-01578Oracle data block corrupted (file #, block #) (bloque de datos de Oracle corrupto)
- ORA-02049Timeout: distributed transaction waiting for lock (timeout de bloqueo en transacción distribuida)
- enq: TX - row lock contentionEspera: sesión bloqueada por un bloqueo de fila que mantiene otra transacción
- log file syncEspera: sesión esperando a que LGWR escriba el redo en disco al hacer commit
- db file sequential readEspera: lectura física de un solo bloque, normalmente un acceso a índice o tabla