DBAtlas · Atlas für Datenbankbetrieb

22004: null_value_not_allowed

PostgreSQL

Was bedeutet das?

Ein NULL wurde übergeben, wo NULL nicht akzeptiert wird. Das unterscheidet sich von einem NOT-NULL-Constraint einer Spalte (23502); es entsteht meist, wenn in einem Funktions- oder Prozedurkontext NULL an einen Parameter oder eine Operation übergeben wird, die NULL nicht akzeptiert. Gehört zu Klasse 22 (data_exception).

Ursache

Zuweisung von NULL an eine als NOT NULL deklarierte PL/pgSQL-Variable; Übergabe eines NULL-Abfragestrings an EXECUTE; oder Übergabe von NULL an Argumente eingebauter Funktionen, die es nicht akzeptieren. Hinweis: Eine als STRICT markierte Funktion löst bei NULL-Eingabe keinen Fehler aus — sie gibt ohne Ausführung NULL zurück.

Lösung

Finde die fehlerhafte Zeile (CONTEXT) und sichere den dort ankommenden Wert mit einer NULL-Prüfung ab oder liefere mit COALESCE einen Standardwert: COALESCE(value, default_value). Prüfe in PL/pgSQL Werte vor der Zuweisung an NOT-NULL-Variablen; stelle in dynamischem SQL sicher, dass der an EXECUTE übergebene String nicht NULL ist. Verhindere in der Anwendungsschicht, dass Pflichtfelder als NULL gesendet werden.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank