Triggerkompilierung und -abhängigkeiten

Kompilierte Trigger hängen von den Schemaobjekten ab, in denen sie definiert werden. Wenn ein Objekt, von dem ein Trigger abhängt, gelöscht oder geändert wird, sodass keine Übereinstimmung zwischen dem Trigger und dem Objekt besteht, wird der Trigger invalidiert.

Wenn Sie eine Anweisung CREATE TRIGGER ausführen, wird der zu erstellende TRIGGER kompiliert. Wenn diese Kompilierung einen Fehler verursacht, verläuft die Anweisung CREATE TRIGGER nicht erfolgreich. Um die Kompilierungsfehler anzuzeigen, verwenden Sie die folgende Anweisung:

SELECT * FROM USER_ERRORS WHERE TYPE = 'TRIGGER';

Kompilierte Trigger hängen von den Schemaobjekten ab, in denen sie definiert werden. So hängt beispielsweise der Trigger NEW_EVALUATION_TRIGGER von der Tabelle EVALUATIONS ab:

CREATE OR REPLACE
TRIGGER NEW_EVALUATION_TRIGGER
BEFORE INSERT ON EVALUATIONS
FOR EACH ROW
BEGIN
  :NEW.evaluation_id := evaluations_seq.NEXTVAL;
END;

Um die Schemaobjekte anzuzeigen, von denen Trigger abhängig sind, verwenden Sie folgende Anweisung:

SELECT * FROM ALL_DEPENDENCIES WHERE TYPE = 'TRIGGER';

Wenn ein Objekt, von dem ein Trigger abhängt, gelöscht oder geändert wird, sodass keine Übereinstimmung zwischen dem Trigger und dem Objekt besteht, wird der Trigger invalidiert. Beim nächsten Auslösen des Triggers wird er erneut kompiliert. Um einen TRIGGER sofort neu zu kompilieren, verwenden Sie die Anweisung ALTER TRIGGER mit der COMPILE-Klausel. Beispiel:

ALTER TRIGGER NEW_EVALUATION_TRIGGER COMPILE;

Siehe auch: Oracle AI Database PL/SQL Language Reference für weitere Informationen zur Triggerkompilierung und zu Abhängigkeiten