22004: null_value_not_allowed
PostgreSQLЧто это значит?
NULL передан туда, где NULL не допускается. Это отличается от ограничения NOT NULL столбца (23502); обычно возникает при передаче NULL в параметр или операцию, не допускающие NULL, в контексте функции или процедуры. Относится к классу 22 (data_exception).
Почему возникает?
Присваивание NULL переменной PL/pgSQL, объявленной как NOT NULL; передача NULL в качестве строки запроса в EXECUTE; либо передача NULL в аргументы встроенных функций, которые его не допускают. Примечание: функция с пометкой STRICT не вызывает ошибку при входном NULL — она возвращает NULL, не выполняясь.
Как исправить
Найдите строку, где происходит сбой (CONTEXT), и защитите поступающее туда значение проверкой на NULL или подставьте значение по умолчанию с помощью COALESCE: COALESCE(value, default_value). В PL/pgSQL проверяйте значения перед присваиванием переменным NOT NULL; в динамическом SQL убедитесь, что строка, передаваемая в EXECUTE, не равна NULL. Не допускайте отправки обязательных полей как NULL на уровне приложения.