ORA 04091 觸發器寫錯了

2021-08-29 20:07:47 字數 608 閱讀 3746

今天同事來說,我寫的觸發器出問題了。我看了錯誤:ora-04091。

以前沒寫過,然後通過各種途徑學了一下,就寫了如下觸發器:

create or replace trigger trigger_a after insert on table_a for each row begin insert into table_b(rpt_id,field,value,seq) select id,field,value,seq from table_a; end;

ok ,編譯通過,以為一切ok。

結果冒出了ora-04091的錯誤。

同事拿出前人寫過的乙個東西,看了以後,才明白。

trigger 中的執行語句不能讀寫 它依附的表。

不過可以這樣

create or replace trigger trigger_a after insert on table_a for each row begin insert into table_b(id,field,value,seq) values(:new.id,:new.field,:new.value,:new.seq); end;

不知道這個new,但是猜也猜到了,用old的話,就意味著是動作沒有發生前的了。

oracle 觸發器中ORA 04091原因及解決

最近已經做好很久的已經很久的專案有個新需求,a表資源是歸屬於b表,所以a中有引用b表的bid。且b表中有個字段用於統計隸屬於他的a資源。當b表中某個資源更換他的隸屬關係是,則這個資源原隸屬的b資源統計字段需要重新計算。a表 xtbh bidacd status12 101422 131432 209...

ORA 04098 觸發器 無效且未通過重新確認

執行 create or replace trigger machinetypes trigger before insert on ws2 rp machinetypes for each row begin select machinetypes sequence.nextval into ne...

ORA 04098 觸發器無效且未通過重新驗證

問題 1 建立序列 create sequence t1id seq minvalue 1 maxvalue 999999 start with 1 increment by 1 cache 20 select t1id seq.nextval from dual 2 建立觸發器 create or...