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

ORA-01400: cannot insert NULL into (column)

Oracle

의미

NOT NULL 제약 조건이 있는 컬럼에 NULL 값을 삽입하거나 설정했다. 필수 필드는 비워 둘 수 없다.

원인

INSERT에서 필수 컬럼에 값을 제공하지 않음, UPDATE로 컬럼을 NULL로 설정, 컬럼에 DEFAULT 미정의, 또는 서브쿼리/애플리케이션에서 빈 값이 넘어옴.

해결 방법

오류 메시지에 나온 컬럼에 유효한 값을 제공한다. 컬럼에 적절한 기본값을 정의한다: ALTER TABLE my_table MODIFY (my_column DEFAULT 0); (DEFAULT는 INSERT에서 컬럼을 완전히 생략한 경우에만 적용된다. 명시적으로 보낸 NULL 값에는 12c+ DEFAULT ON NULL을 사용한다: ALTER TABLE my_table MODIFY (my_column DEFAULT ON NULL 0);) 규칙이 실제로 필수가 아니라면 제약 조건을 제거한다: ALTER TABLE my_table MODIFY (my_column NULL); 빈 값은 전송 전에 애플리케이션에서 검증한다.

DBAtlas에서 열기 →

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