Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有插入循环的Oracle触发器_Oracle_Triggers_Oracle12c - Fatal编程技术网

带有插入循环的Oracle触发器

带有插入循环的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)

我试图在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)
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);