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

22004: null_value_not_allowed

PostgreSQL

Que signifie cette erreur ?

Un NULL a été passé là où NULL n'est pas accepté. C'est différent d'une contrainte NOT NULL de colonne (23502) ; cela provient généralement d'un NULL passé à un paramètre ou à une opération qui ne l'accepte pas dans le contexte d'une fonction ou d'une procédure. Appartient à la Class 22 (data_exception).

Cause

Affectation de NULL à une variable PL/pgSQL déclarée NOT NULL ; passage d'une chaîne de requête NULL à EXECUTE ; ou passage de NULL à des arguments de fonctions intégrées qui ne l'acceptent pas. Remarque : une fonction marquée STRICT ne lève pas d'erreur sur une entrée NULL — elle renvoie NULL sans s'exécuter.

Comment la corriger

Trouvez la ligne en échec (CONTEXT) et protégez la valeur qui y parvient par un contrôle de NULL, ou fournissez une valeur par défaut avec COALESCE : COALESCE(value, default_value). En PL/pgSQL, validez les valeurs avant de les affecter à des variables NOT NULL ; en SQL dynamique, assurez-vous que la chaîne passée à EXECUTE n'est pas NULL. Empêchez l'envoi de champs obligatoires à NULL au niveau applicatif.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur