DBAtlas · 데이터베이스 운영 아틀라스

22004: null_value_not_allowed

PostgreSQL

의미

NULL을 허용하지 않는 곳에 NULL이 전달되었다. 컬럼 NOT NULL 제약 조건(23502)과는 다르며, 보통 함수나 프로시저 컨텍스트에서 NULL을 받지 않는 파라미터나 연산에 NULL을 전달할 때 발생한다. Class 22(data_exception)에 속한다.

원인

NOT NULL로 선언된 PL/pgSQL 변수에 NULL을 대입하거나, EXECUTE에 NULL 쿼리 문자열을 전달하거나, NULL을 받지 않는 내장 함수 인수에 NULL을 전달한 경우다. 참고: STRICT로 지정된 함수는 NULL 입력 시 오류를 발생시키지 않고 실행하지 않은 채 NULL을 반환한다.

해결 방법

실패한 줄(CONTEXT)을 찾아 해당 위치에 도달하는 값을 NULL 검사로 보호하거나 COALESCE로 기본값을 지정한다: COALESCE(value, default_value). PL/pgSQL에서는 NOT NULL 변수에 대입하기 전에 값을 검증하고, 동적 SQL에서는 EXECUTE에 전달하는 문자열이 NULL이 아닌지 확인한다. 애플리케이션 계층에서 필수 필드가 NULL로 전송되지 않도록 한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목