22004: null_value_not_allowed
PostgreSQL¿Qué significa?
Se pasó un NULL donde no se acepta NULL. Es distinto de una restricción NOT NULL de columna (23502); suele deberse a pasar NULL a un parámetro u operación que no acepta NULL en el contexto de una función o procedimiento. Pertenece a la Class 22 (data_exception).
¿Por qué ocurre?
Asignar NULL a una variable PL/pgSQL declarada NOT NULL; pasar una cadena de consulta NULL a EXECUTE; o pasar NULL a argumentos de funciones integradas que no lo aceptan. Nota: una función marcada STRICT no genera error con una entrada NULL — devuelve NULL sin ejecutarse.
Cómo solucionarlo
Localice la línea que falla (CONTEXT) y proteja el valor que llega a ella con una comprobación de NULL, o proporcione un valor predeterminado con COALESCE: COALESCE(value, default_value). En PL/pgSQL, valide los valores antes de asignarlos a variables NOT NULL; en SQL dinámico asegúrese de que la cadena pasada a EXECUTE no sea NULL. Evite en la capa de aplicación que los campos obligatorios se envíen como NULL.