ORA-01400: 无法将 NULL 插入 (CHARGE_WQRL.SF_JMQTFY_T.BH)
生活随笔
收集整理的這篇文章主要介紹了
ORA-01400: 无法将 NULL 插入 (CHARGE_WQRL.SF_JMQTFY_T.BH)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
[ERROR] JmCheckManageDaoImpl:901 - java.sql.SQLException: ORA-01400: 無法將 NULL 插入 ("CHARGE_WQRL"."SF_JMQTFY_T"."BH")
這個問題很多時候是沒有為該表建立觸發(fā)器(trigger)導(dǎo)致的,或者是序列(sequence)沒建立,查看一下,確保兩個都要有。
這是建立sequence
create sequence SF_JMQTFY_S minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1 cache 20;建立trigger
CREATE OR REPLACE TRIGGER "CHARGE_WQRL"."SF_JMQTFY_TR" BEFORE INSERT ON SF_JMQTFY_T FOR EACH ROW DECLARE BEGINSELECT SF_JMQTFY_S.NEXTVAL INTO :NEW.BH FROM DUAL; END;?
附:出現(xiàn)問題的存儲過程,可以看到SF_JMJC_T的BH是聲明了的,直接從序列獲取,而SF_JMQTFY_T的BH是沒有聲明的,如果不使用觸發(fā)器調(diào)用是無法賦值的。
--設(shè)置稽查表的sequenceSELECT SF_JMJC_S.NEXTVAL INTO V_BH FROM DUAL;--稽查表插入信息INSERT INTO SF_JMJC_T(BH, CNQ, YHBH, JCDZ, YRSJ, YSFMJ, SFMJ, YGNZT, GNZT, YSFLB, SFLB, CLJG,JCR, JCRQ, WYJ, CZY, BZ,QFJE)VALUES(V_BH, V_CNQ, V_YHBH, V_JCDZ, V_YRSJ, V_YSFMJ, V_SFMJ, V_YGNZT, V_GNZT,V_YSFLB, V_SFLB, V_CLJG, V_JCR, V_JCRQ, V_WYJ, V_CZY, V_BZ,V_WYJ);--其他費(fèi)用表插入信息(違約金>0時將其插入欠費(fèi)金額)IF V_WYJ >= 0 THENINSERT INTO SF_JMQTFY_T(CNQ, YHBH, FYBH, YSJE, QFJE, FYLB,YWBH)VALUES(V_CNQ, V_YHBH, 0, V_WYJ, V_WYJ, '違約金',V_BH);END IF;?
總結(jié)
以上是生活随笔為你收集整理的ORA-01400: 无法将 NULL 插入 (CHARGE_WQRL.SF_JMQTFY_T.BH)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux java7 64位_linu
- 下一篇: JAVA循环队列