Acerca de la Compilación y las Dependencias de Disparadores

Los disparadores compilados dependen de los objetos de esquema en los que se han definido. Si un objeto del que depende un disparador se borra o se cambia de forma que el disparador no coincido con el objeto, el disparador se invalida.

Al ejecutar una sentencia CREATE TRIGGER se compila el disparador que se está creando. Si esta compilación provoca un error, la sentencia CREATE TRIGGER falla. Para ver los errores de compilación, utilice la siguiente sentencia:

SELECT * FROM USER_ERRORS WHERE TYPE = 'TRIGGER';

Los disparadores compilados dependen de los objetos de esquema en los que se han definido. Por ejemplo, NEW_EVALUATION_TRIGGER depende de la tabla EVALUATIONS.

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

Para ver los objetos de esquema de los que dependen los disparadores, utilice la siguiente sentencia:

SELECT * FROM ALL_DEPENDENCIES WHERE TYPE = 'TRIGGER';

Si el disparador depende de un objeto, se borra o se cambia, de forma que el disparador no coincido con el objeto, el disparador se invalida. La próxima vez que se invoca el disparador, éste se vuelve a compilar. Para recompilar un disparador inmediatamente, utilice la sentencia ALTER TRIGGER con la cláusula COMPILE, como se muestra en el siguiente ejemplo.

ALTER TRIGGER NEW_EVALUATION_TRIGGER COMPILE;

Consulte también: Referencia de lenguaje PL/SQL de Oracle Database para obtener más información sobre la compilación y las dependencias de disparadores