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

22003: numeric_value_out_of_range

PostgreSQL

Que signifie cette erreur ?

Une valeur numérique est hors de la plage autorisée par le type cible. Par exemple, écriture d'une valeur supérieure à 2 milliards dans une colonne integer, ou d'un nombre trop grand pour une colonne numeric(5,2).

Cause

Dépassement des limites de smallint/integer/bigint ; dépassement de la précision/échelle de numeric(p,s) ; débordement arithmétique ; somme/produit dépassant la capacité du type ; séquence atteignant la borne supérieure de son type.

Comment la corriger

Passez la colonne/le paramètre à un type plus large (bigint au lieu d'integer, augmentation de la précision de numeric) : ALTER TABLE my_table ALTER COLUMN my_column TYPE bigint; Arrondissez (ROUND) ou validez la valeur selon la règle métier. Si un calcul intermédiaire déborde, calculez l'expression en numeric. En cas de débordement de séquence, élargissez le type.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur