Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 触发器发出ORA-04091错误_Oracle_Triggers_Ora 04091 - Fatal编程技术网

Oracle 触发器发出ORA-04091错误

Oracle 触发器发出ORA-04091错误,oracle,triggers,ora-04091,Oracle,Triggers,Ora 04091,我在表tbl\u campboss\u报告上有一个插入后触发器,但它给了我 tbl\u campboss\u报告正在变异,触发器/函数可能看不到它 这是我的触发器: BEGIN update tbl_campboss_report c set c.units=(select b.units from tbl_campboss_master b where b.details=:new.details); END; 有人能帮我吗? 提前感谢请考虑将触发器更改为“插入前”。您不需要在触发器中写

我在
表tbl\u campboss\u报告
上有一个插入后触发器,但它给了我
tbl\u campboss\u报告
正在变异,触发器/函数可能看不到它

这是我的触发器:

BEGIN
update tbl_campboss_report c set c.units=(select b.units from tbl_campboss_master b where b.details=:new.details); 

END;
有人能帮我吗?

提前感谢

请考虑将触发器更改为“插入前”。您不需要在触发器中写入UPDATE语句。只需将值分配给所需的列

:new.units = <value that you get from the query>;
:new.units=;

考虑将触发器更改为插入前。您不需要在触发器中写入UPDATE语句。只需将值分配给所需的列

:new.units = <value that you get from the query>;
:new.units=;

您不能更新调用触发器的相同记录,
details
是唯一键吗?您正在尝试更新多条记录吗?详细信息不是PK,我只更新一条记录如果您正在更新的记录与您刚刚插入的记录相同,则使用@Noel。如果您在插入行的SQL中包含该列的填充,则这将是一个更有效的操作。这一价值的来源也将更加明显。当然,如果根本不填充它,并在需要时从tbl_campboss_主表中获取值,可能会更有效。您不能更新调用触发器的相同记录,
details
是唯一的键吗?您正在尝试更新多条记录吗?详细信息不是PK,我只更新一条记录如果您正在更新的记录与您刚刚插入的记录相同,则使用@Noel。如果您在插入行的SQL中包含该列的填充,则这将是一个更有效的操作。这一价值的来源也将更加明显。当然,完全不填充它并在需要时从tbl_campboss_主表中获取值可能更有效。(我已经做了,所以不用它很遗憾…(我已经做了,所以不用它很遗憾…)