oracle中寫行級觸發器,觸發器都生成了,但是在使用的時候報觸發器未生效;
CREATE
OR REPLACE TRIGGER ZDRCFQ AFTER INSERT ON RY_ZDRKXX FOR EACH ROW
WHEN ( NEW.GKZTDM = '3' AND NEW.CZBS < '3' AND NEW.GMSFHM IS NOT NULL )
BEGIN
INSERT INTO RY_BQB ( BQBH, RYBH, GMSFHM, XXBH, XXLB, RYBQDM, BZ, CZDW,CZR, CZSJ, CZBS, RYBQLB )
VALUES
(
(SELECT sys_guid () FROM dual ),: NEW.RYBH,: NEW.GMSFHM,: NEW.ZDRKBH,
'重點人口',
'01',: NEW.BZ,: NEW.CZDW,: NEW.CZR,: NEW.CZSJ,: NEW.CZBS,
'0'
);
END;
第一次寫oracle觸發器。大神幫我看看有什么錯
uj5u.com熱心網友回復:
報出無效且未通過重新驗證uj5u.com熱心網友回復:
報出無效且未通過重新驗證 , 看不懂具體的報錯資訊呢?
uj5u.com熱心網友回復:
觸發器編譯成功了?我看少了declare
uj5u.com熱心網友回復:
兩個表的ddl 貼一下。uj5u.com熱心網友回復:
1、少了declare2、WHEN ( NEW.GKZTDM = '3' AND NEW.CZBS < '3' AND NEW.GMSFHM IS NOT NULL ) 換成if
3、上面的判斷陳述句應該在begin后面
4、SELECT sys_guid () FROM dual ) 改成 直接參考 sys_guid()
uj5u.com熱心網友回復:
To 5樓樓主寫的when應該是緊跟著For each row的,他多了個空行。不需要用if
uj5u.com熱心網友回復:
Oracle 觸發器http://www.verejava.com/?id=17173797331956
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/62123.html
標籤:開發
下一篇:Oracle資料求推薦
