DBAtlas · Atlas d'exploitation des bases de données

ORA-01722: Invalid number (nombre invalide)

Oracle

Que signifie cette erreur ?

Une chaîne de caractères non convertible en nombre a été utilisée là où un contexte numérique est requis. Une conversion implicite ou explicite a échoué.

Cause

Comparaison d'une colonne numérique avec du texte (par ex. WHERE num_col = 'ABC'), insertion d'une valeur contenant des lettres dans un champ numérique, format inadapté pour TO_NUMBER, ou incohérence des séparateurs décimal/de milliers (virgule ou point).

Comment la corriger

Trouvez l'expression dont la conversion échoue ; généralement une condition WHERE ou une valeur d'INSERT. Assurez la compatibilité des types dans les comparaisons texte/nombre et utilisez une conversion explicite si nécessaire : TO_NUMBER(my_column) ou TO_CHAR côté texte. Empêchez les saisies non numériques dans les colonnes numériques au niveau de la couche applicative. Faites attention au paramètre NLS_NUMERIC_CHARACTERS.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur