我需要一些帮助。 我尝试创建一个触发器,只要在特定的表上执行插入,删除或更新操作,就执行一个过程。 这是触发器
CREATE OR REPLACE NONEDITIONABLE TRIGGER NQDI.GAV_TRG
AFTER INSERT or UPDATE or DELETE ON D_GAV
FOR EACH ROW
BEGIN
PRC_FILL_D_GAV(:old.report_name);
END;
不幸的是,由于触发器在任何提交完成之前就开始了,我需要从同一个表中读取它,它给了我正在修改的“D_GAV表”无法读取'错误。 此外, FOR EACH ROW 会使每个记录的触发器开始更改,而我希望触发器仅在结束时启动,每次更新,插入或删除都已提交,但我还没有#39 ; t这样做时,找到一种方法来保存:old.report_name 。 我知道我可以通过一个正常运行的过程来做我想做的事情,但是我想避免这种情况。还有其他我无法忽视的解决方案吗?
答案 0 :(得分:3)
您需要复合触发器。在每个行事件之后,您将数据插入到数组中。在声明之后,您循环访问数据并调用您的过程。
extract_first()