Sobre a Compilação e Dependências de Trigger
Os triggers compilados dependem dos objetos do esquema onde estão definidos. Se um objeto do qual depende um acionador for eliminado ou alterado de forma que haja uma incompatibilidade entre o acionador e o objeto, o acionador será invalidado.
A execução de uma instrução CREATE TRIGGER compila o TRIGGER que está sendo criado. Se essa compilação causar um erro, a instrução CREATE TRIGGER falhará. Para ver os erros de compilação, use a seguinte instrução:
SELECT * FROM USER_ERRORS WHERE TYPE = 'TRIGGER';
Os triggers compilados dependem dos objetos do esquema onde estão definidos. Por exemplo, NOVA_EVALUATION_TRIGGER depende da tabela AVALIAÇÕES.
CREATE OR REPLACE
TRIGGER NEW_EVALUATION_TRIGGER
BEFORE INSERT ON EVALUATIONS
FOR EACH ROW
BEGIN
:NEW.evaluation_id := evaluations_seq.NEXTVAL;
END;
Para ver os objetos de esquema dos quais os acionadores dependem, use a seguinte instrução:
SELECT * FROM ALL_DEPENDENCIES WHERE TYPE = 'TRIGGER';
Se um objeto de que um acionador depende for eliminado ou alterado de forma que haja uma incompatibilidade entre o acionador e o objeto, o acionador será invalidado. Na próxima vez que o acionador for chamado, ele será recompilado. Para recompilar um TRIGGER imediatamente, use a instrução ALTER TRIGGER com a cláusula COMPILE, conforme mostrado no exemplo a seguir.
ALTER TRIGGER NEW_EVALUATION_TRIGGER COMPILE;
Consulte Também: Referência de Linguagem PL/SQL do Oracle Database para obter mais informações sobre compilação e dependências de trigger