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

ORA-01438: value larger than specified precision allowed for this column (valeur supérieure à la précision autorisée pour la colonne)

Oracle

Que signifie cette erreur ?

Un nombre dépassant les limites de précision et d'échelle définies a été écrit dans une colonne NUMBER. Par exemple, une valeur dont la partie entière compte 3 chiffres ne tient pas dans une colonne NUMBER(4,2).

Cause

La définition NUMBER(p,s) de la colonne est trop étroite pour les données ; un résultat de calcul est plus grand que prévu ; l'échelle décimale réduit les chiffres restants pour la partie entière (NUMBER(5,3) n'autorise que 2 chiffres entiers).

Comment la corriger

Élargissez la capacité de la colonne pour correspondre à la plage réelle des données : ALTER TABLE my_table MODIFY (my_column NUMBER(12,2)); Arrondissez la valeur dans l'application, ou ajustez-la à l'échelle avec ROUND/TRUNC. Pour trouver la ligne en dépassement, affinez votre requête lors des tests, et ajoutez une validation des saisies.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur