La base de datos Oracle es un sistema de gestión de base de datos relacional de objetos que consiste en un almacenamiento de aplicaciones y datos. Un disparador es un programa con nombre almacenado en una base de datos Oracle y ejecutado para un evento específico. El evento puede ser una manipulación de bases de datos, una definición o una operación asociada a una tabla o una vista, esquema o base de datos. Los disparadores se activan de forma predeterminada en Oracle. Los ejemplos de momentos asociados con la manipulación de bases de datos incluyen instrucciones DELETE, INSERT y UPDATE.
Instrucciones
1 Asegúrese de que tiene los permisos correctos para utilizar disparadores. Debe tener el privilegio del sistema CREATE TRIGGER, así como el permiso para alterar las tablas mencionadas en la declaración del activador. Si tiene dudas acerca de sus privilegios, póngase en contacto con el administrador del sistema.
2 Inserte una sentencia CREATE TRIGGER en el código. Por ejemplo, el siguiente código se ejecuta cuando se realiza una operación de gestión de base de datos en la tabla:
CREAR O CAMBIAR DE ACTIVACIÓN Print_salary_changes
ANTES eliminar o insertar o actualizar EN emp
POR CADA FILA
CUANDO (NEW.EMPNO> 0)
DECLARAR
sal_diff number;
EMPEZAR
sal_diff := :NEW.SAL - :OLD.SAL;
dbms_output.put('Old salary: ' || :OLD.sal);
dbms_output.put(' New salary: ' || :NEW.sal);
dbms_output.put_line(' Difference ' || sal_diff);
FIN;
/
3 Modificar el código para representar cuando desee que el gatillo para disparar. La declaración ANTES indica el gatillo debe ejecutar antes de que se acceda a la tabla. La declaración puede ser modificada para DESPUÉS si desea que el disparador para cambiar o consultar la misma mesa.
4 Cambiar el código para reflejar si desea que el gatillo para disparar una vez o varias veces. En este ejemplo, para cada fila indica que desea que el gatillo para disparar una vez por cada fila de la tabla. Si elimina esta línea de código, el gatillo se dispara una vez por cada declaración.
5 Modificar la cláusula WHEN para indicar cuando el cuerpo de disparo se ejecuta en una fila. En este ejemplo, cuando (NEW.EMPNO> 0) indica que el cuerpo se hacen efectivas sólo se ejecutará si EMPNO es positivo.
Consejos y advertencias
- Si desea desactivar un disparador, utilice una instrucción ALTER TRIGGER con una cláusula DISABLE. Por ejemplo, para desactivar los disparadores asociados con un cuadro de ingresos, insertar la siguiente línea de código:
- ALTER TABLE Ingresos DISABLE todos los disparadores;