ora-01400 无法将NULL插入 ID 解决方法
问题描述:由于工作原因,把部分 字段改了,大体这样
1 StatementCallback; uncategorized SQLException for SQL 2 [insert into test(schoolId,classId,teacherId,weekId,serialno,name) values(28529,23402,328717,7,8,'')]; 3 SQL state [null]; error code [17081]; 批处理中出现错误: ORA-01400: 无法将 NULL 插入 ("XXX"."test"."ID") 4 ; nested exception is java.sql.BatchUpdateException: 批处理中出现错误: ORA-01400: 无法将 NULL 插入 ("ORAL"."test"."ID") 5 -(:71)
这个问题很多时候是没有为该表建立触发器导致的,或者是sequence没建立,或者是trigger没建立。
建立其中一个或两个即可。
这是建立sequence
1 create sequence TEST_SEQ 2 3 minvalue 1 4 5 maxvalue 999999999999999999999999999 6 7 start with 1 8 9 increment by 1 10 11 cache 20;
这是建立trigger的
CREATE OR REPLACE TRIGGER " TEST_TRI" BEFORE INSERT ON TEST FOR EACH ROW BEGIN SELECT test_seq.NEXTVAL INTO :NEW.ID FROM DUAL; END;