22004: null_value_not_allowed
PostgreSQLO que significa?
Um NULL foi passado onde NULL não é aceito. Isso difere de uma restrição NOT NULL de coluna (23502); geralmente decorre de passar NULL a um parâmetro ou operação que não aceita NULL no contexto de uma função ou procedure. Pertence à Class 22 (data_exception).
Por que acontece?
Atribuir NULL a uma variável PL/pgSQL declarada como NOT NULL; passar uma string de consulta NULL para EXECUTE; ou passar NULL a argumentos de funções nativas que não o aceitam. Observação: uma função marcada como STRICT não gera erro com entrada NULL — ela retorna NULL sem ser executada.
Como resolver
Encontre a linha com falha (CONTEXT) e proteja o valor que chega a ela com uma verificação de NULL, ou forneça um padrão com COALESCE: COALESCE(value, default_value). Em PL/pgSQL, valide os valores antes de atribuí-los a variáveis NOT NULL; em SQL dinâmico, garanta que a string passada para EXECUTE não seja NULL. Impeça que campos obrigatórios sejam enviados como NULL na camada de aplicação.