Я попытался воссоздать ваш сценарий, и, похоже, он работает нормально. Поэтому я думаю, вам следует снова взглянуть на вашу реализацию. Ищите различия между тем, что вы закодировали, и тем, что следует здесь, и, возможно, именно там и лежит ответ.
Вот мои спусковые
SQL> create or replace
2 trigger t1_compound
3 for insert or update on t1
4 compound trigger
5
6 after statement is
7 begin
8 update t2 set t1_id = nvl(t1_id,0) + 1 where cod = 12;
9 end after statement;
10 end;
11/
Trigger created.
SQL>
SQL> create or replace
2 trigger t2_compound
3 for insert or update on t2
4 compound trigger
5
6 after statement is
7 begin
8 update t3 set t2_id = nvl(t2_id,0) + 1 where cod = 12;
9 end after statement;
10 end;
11/
Trigger created.
SQL>
... вот тестовые данные ...
SQL> select id, cod from t1
2/
ID COD
---------- ----------
1 12
SQL> select id, cod, t1_id from t2
2/
ID COD T1_ID
---------- ---------- ----------
11 12
SQL> select id, cod, t2_id from t3
2/
ID COD T2_ID
---------- ---------- ----------
111 12
SQL>
... и это то, что происходит, когда я выпустить обновление на первой таблице ...
SQL> update t1 set dt = sysdate
2 where id = 1
3/
1 row updated.
SQL> select id, cod, t1_id from t2
2/
ID COD T1_ID
---------- ---------- ----------
11 12 1
SQL> select id, cod, t2_id from t3
2/
ID COD T2_ID
---------- ---------- ----------
111 12 1
SQL>
Что триггер на THEOTHERTABLE выглядеть? –
Это простой триггер, который срабатывает при обновлении THEOTHERTABLE. Я пробовал выводить на dbms_output в перед каждой строкой, а после оператора и сразу запускает первый раз после компиляции триггера TRIGGER – Joao