トリガーのコンパイルおよび依存について
コンパイルされたトリガーは、トリガーが定義されるスキーマ・オブジェクトに依存します。トリガーが依存するオブジェクトが削除または変更され、トリガーとオブジェクトの不一致が生じた場合、そのトリガーは無効になります。
CREATE TRIGGER文を実行することで、作成されるトリガーをコンパイルします。このコンパイルでエラーが発生した場合、CREATE TRIGGER文は失敗します。コンパイル・エラーを表示するには、このビューを使用します。
SELECT * FROM USER_ERRORS WHERE TYPE = 'TRIGGER';
コンパイルされたトリガーは、トリガーが定義されるスキーマ・オブジェクトに依存します。たとえば、NEW_EVALUATION_TRIGGERはEVALUATIONS表に依存します。
CREATE OR REPLACE
TRIGGER NEW_EVALUATION_TRIGGER
BEFORE INSERT ON EVALUATIONS
FOR EACH ROW
BEGIN
:NEW.evaluation_id := evaluations_seq.NEXTVAL;
END;
トリガーが依存するスキーマ・オブジェクトを表示するには、次の文を使用します。
SELECT * FROM ALL_DEPENDENCIES WHERE TYPE = 'TRIGGER';
トリガーが依存するオブジェクトが削除または変更され、トリガーとオブジェクトの不一致が生じた場合、そのトリガーは無効になります。トリガーが次回起動されるとき、トリガーは再コンパイルされます。トリガーをすぐに再コンパイルするには、COMPILE句を含むALTER TRIGGER文を使用します。たとえば:
ALTER TRIGGER NEW_EVALUATION_TRIGGER COMPILE;
関連項目:トリガーのコンパイルおよび依存性の詳細は、『Oracle AI Database PL/SQL言語リファレンス』を参照してください。