我是PL / SQL和DB对象的新手。我根据条件编写了一个插入后触发器但是遇到了PLS 00103错误;请帮忙。
以下是我的触发器脚本
CREATE TRIGGER trigger1 AFTER INSERT
ON Table1
FOR EACH ROW
when (new.upper(Table1.column1)='ABC')
Declare
ITEM_CODE table2.ITEM_CODE%TYPE;
BEGIN
ITEM_CODE := :new.ITEM_CODE;
INSERT INTO table2( PK,ITEM_CODE,EVENT_NUMBER)
VALUES(EVENT_NUMBER_SEQ.NEXTVAL, ITEM_CODE,EVENT_NUMBER_SEQ.NEXTVAL);
END;
我正在通过Toad执行此脚本。
先谢谢。
答案 0 :(得分:1)
问题在于:when (new.upper(Table1.column1)='ABC')
应为(when upper(new.column1) ='ABC')
此外,您不需要声明变量仅分配值。只需直接使用价值。
CREATE TRIGGER trigger1 AFTER INSERT
ON Table1
FOR EACH ROW
when (upper(new.column1) ='ABC')`
BEGIN
-- IF (upper(:new..column1) ='ABC') THEN
INSERT INTO table2( PK,ITEM_CODE,EVENT_NUMBER)
VALUES(EVENT_NUMBER_SEQ.NEXTVAL, :new.ITEM_CODE,EVENT_NUMBER_SEQ.NEXTVAL);
--END IF;
END;