带有插入循环的Oracle触发器
我试图在Oracle12c中创建这个触发器,但当我试图编译时,我得到了这个错误:pls-00382表达式的游标类型错误带有插入循环的Oracle触发器,oracle,triggers,oracle12c,Oracle,Triggers,Oracle12c,我试图在Oracle12c中创建这个触发器,但当我试图编译时,我得到了这个错误:pls-00382表达式的游标类型错误 create or replace TRIGGER TRIGGER1 AFTER INSERT ON BUDGETITEMS FOR EACH ROW BEGIN FOR I IN (select PARENTITEM from BUDGETITEMS where PARENTITEM is not null START WITH item IN (:new.ITEM)
create or replace TRIGGER TRIGGER1
AFTER INSERT ON BUDGETITEMS
FOR EACH ROW
BEGIN
FOR I IN
(select PARENTITEM
from BUDGETITEMS
where PARENTITEM is not null
START WITH item IN (:new.ITEM)
connect by prior PARENTITEM = ITEM) loop
INSERT INTO ITEMPARENTITEM_NEW ( ITEM, PARENTITEM, YEAR) VALUES ( :new.ITEM,I, :new.YEAR);
END LOOP;
END;
谢谢你的帮助
这是我的桌子:
BUDGETITEMS
AMOUNT NUMBER(2,0) Yes
ITEMLEVEL NUMBER Yes
ITEMNAME VARCHAR2(80 BYTE) No
PARENTITEM NUMBER Yes
YEAR NUMBER(4,0) Yes
ITEM NUMBER No "BUDGET"."ISEQ$$_104999".nextval
及
它需要具有以下字段:
I.PARENTITEM
插入内容应为:
INSERT INTO ITEMPARENTITEM_NEW ( ITEM, PARENTITEM, YEAR) VALUES ( :new.ITEM,I.PARENTITEM, :new.YEAR);
但是我认为您引入了一个变异错误。您可以将表创建脚本添加到postSee eg中吗。
INSERT INTO ITEMPARENTITEM_NEW ( ITEM, PARENTITEM, YEAR) VALUES ( :new.ITEM,I.PARENTITEM, :new.YEAR);