O czym
O nowości w Oracle 11g, która daje możliwość określenia kolejności wykonywania w ramach tego samego punktu wywołania.
Wyzwalacze w Oracle 11g
W Oracle 10g wymuszenie określonej kolejności (w ramach tego samego punkty wywołania) wymagało połączenia wyzwalaczy.
CREATE TABLE TAB AS SELECT * FROM DUAL;
CREATE TRIGGER on_update1 BEFORE UPDATE ON TAB
BEGIN
dbms_output.put_line('on_update1');
dbms_output.put_line('on_update1');
END;
W Oracle 11g wprowadzono klauzulę FOLLOWS, która pozwala określić kolejność wykonywania trigger’ów (przy spełnieniu pewnych wymagań).
CREATE OR REPLACE TRIGGER on_update2 BEFORE UPDATE ON TAB FOLLOWS on_update1
BEGIN
dbms_output.put_line('on_update2');
END;
/
UPDATE tab SET dummy = dummy;
Klauzula FOLLOWS nie umożliwia wymuszenia kolejności w różnych punktach wywołania – nawet dla wyzwalaczy tego samego typu.