2013-03-06 3 views
2

에 NULL을 삽입 할 수 없습니다 -오라클 - 오류 : 'ORA-01400 : 나는 테이블에 레코드를 삽입하려고 시도하지만, 오류를 받고 있어요

'ORA-01400: cannot insert NULL into (....'. The table structure is:

나는 오라클 MySQL에서 마이그레이션 할 수 있습니다.

Mysql에서 작동하지만 Oracle에서는 작동하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 나는이 시도하지 널 (null) 옵션

+2

MySQL은 당신이-null이 아닌 컬럼에 널 (null) 삽입 할 수 있습니다 (조용히 그 뭔가 다른 변환). 오라클은 실제로 열에 NULL을 저장하지 않으려한다는 제약 조건을 준수합니다. 해결책은 삽입 할 때 NULL 대신 값을 제공하는 것입니다. –

+1

특정 열에 NOT NULL 제약 조건이 있으므로 삽입하는 동안 값을 제공하거나 트리거가 누락되어 있어야합니다 (예 : 시퀀스에서 열을 채울 수 있음) – tbone

+0

Ok. 오라클의 모든 테이블에서 'not null'옵션을 어떻게 삭제할 수 있습니까? – neoerol

답변

1

을 모든 열 삽입 쿼리를 작성하거나 선택을 취소해야합니까 :

create or replace trigger EDITIONS_COR 
    before insert or update on EDITIONS 
    for each row 
begin 
    if INSERTING then 
    select EDITIONS_SEQ.nextval into :new.ID from DUAL; 
    end if; 
    :new.CORDATE:=SYSDATE; 
    :new.USERNAME:=USER; 
end;