Bazy danych Oracle – nowości w wyzwalaczach w 11g

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.

This entry was posted in PL/SQL, PL/SQL Podstawy and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.