À propos de la compilation des déclencheurs et des dépendances
Les déclencheurs compilés dépendent des objets de schéma sur lesquels ils sont définis. Si un objet dont dépend un déclencheur est supprimé ou modifié de sorte qu'il y ait une non-concordance entre le déclencheur et l'objet, le déclencheur est invalidé.
L'exécution d'une instruction CREATE TRIGGER compile le déclencheur en cours de création. Si cette compilation entraîne une erreur, l'instruction CREATE TRIGGER échoue. Pour voir les erreurs de compilation, utilisez l'instruction suivante :
SELECT * FROM USER_ERRORS WHERE TYPE = 'TRIGGER';
Les déclencheurs compilés dépendent des objets de schéma sur lesquels ils sont définis. Par exemple, NEW_EVALUATION_TRIGGER dépend de la table EVALUATIONS.
CREATE OR REPLACE
TRIGGER NEW_EVALUATION_TRIGGER
BEFORE INSERT ON EVALUATIONS
FOR EACH ROW
BEGIN
:NEW.evaluation_id := evaluations_seq.NEXTVAL;
END;
Pour afficher les objets de schéma dont dépendent les déclencheurs, utilisez l'instruction suivante :
SELECT * FROM ALL_DEPENDENCIES WHERE TYPE = 'TRIGGER';
Si un objet dont dépend un déclencheur est supprimé ou modifié de sorte qu'il y ait une non-concordance entre le déclencheur et l'objet, le déclencheur est invalidé. La prochaine fois que le déclencheur est appelé, il est recompilé. Pour recompiler immédiatement un déclencheur, utilisez l'instruction ALTER TRIGGER avec la clause COMPILE, comme illustré dans l'exemple suivant.
ALTER TRIGGER NEW_EVALUATION_TRIGGER COMPILE;
Voir aussi : Informations de référence sur le langage PL/SQL pour Oracle Database pour plus d'informations sur la compilation des déclencheurs et les dépendances