Tutoriales
manuales, tutoriales, programacion programming tutorials, programming manuals
 
Registrate gratis
45.000 registrados
,
Tutoriales - Diseño - Trucos - Foros/Comunidad - Software - Recursos - HerramientasOnline - Biblioteca
Webmasters -Codigo Fuente -Libros -Cursos Propios -Comunidad -DirectorioN -Cursos Becas MastersN
Manuales Propios: MySQL - SQL - Visual Basic - W.A.P. - Photoshop - phpnuke
-
ir a pagina de incio y ver todos los manuales

Manual de Oracle


Triggers

Un trigger es un bloque PL/SQL asociado a una tabla, que se ejecuta cuando una determinada instrucción en SQL se va a ejecutar sobre dicha tabla.

La sintaxis para crear un trigger es la siguiente:

CREATE [OR REPLACE] TRIGGER
{BEFORE|AFTER} {DELETE|INSERT|UPDATE [OF col1, col2, . . ., colN]
[OR {DELETE|INSERT|UPDATE [OF col1, col2, . . ., colN]. . .]}
ON table
[REFERENCING OLD AS oldname, NEW as newname]
[FOR EACH ROW [WHEN (condition)]]
pl/sql_block

El uso de OR REPLACE permite sobreescribir un trigger existente. Si se omite, y el trigger existe, se producirá, un error.

El modificador FOR EACH ROW indica que el trigger se disparará cada vez que se desee hacer operaciones sobre una fila de la tabla. Si se acompaña del modificador WHEN, se establece una restricción; el trigger solo actuará, sobre las filas que satisfagan la restricción.

A continuación se presenta un ejemplo de creación de un trigger:

SQL> CREATE TRIGGER salary_check
1> BEFORE
2> INSERT OR UPDATE OF sal, job
3> ON employee
4> FOR EACH ROW
5> WHEN (new.job <> 'PRESIDENT')
6> DECLARE
7> minsal NUMBER
8> maxsal NUMBER
9> BEGIN
10> /* Se obtienen los valores minimo y maximo para el salario de */
11> /* un cargo determinado, usando la tabla sal_guide */
12> SELECT minsal, maxsal
13> INTO minsal, maxsal
14> FROM sal_guide
15> WHERE job = :new.job
16> /* Si el salario del empleado a insertar/modificar esta por */
17> /* debajo del minimo, o por encima del maximo, se genera */
19> /* un error. */
20> IF (:new.sal < minsal OR :new.sal > maxsal)
21> THEN raise_application_error(-20601, 'Salary '||:new.sal||
22> ' out of range for job '||:new.job||' for employee '||
23> :new.ename);
24> END IF;
25 > END;

Este trigger impide que se agregue o modifique un empleado con el sueldo mayor o menor que los valores maximo y minimo respectivamente para su cargo. Se agrega la restricción de que el trigger no se dispararán si el cargo es PRESIDENTE.

Si se desea eliminar (borrar) un trigger, se usa la instrucción:

SQL> DROP TRIGGER name;

Nuestros tutoriales
Tutorial de Visual Basic
Aprende Visual Basic desde 0
Tutorial de MySQL
primeros pasos en oracle
Tutorial de Oracle
primeros pasos en oracle
Tutorial de WAP
primeros pasos en WAP
Tutorial de photoshop
efectos con photoshop
Tutorial de php nuke
efectos con photoshop

 

 

 

 

 

 

 

Recomedamos: programatium I solorecursos I tutoriales I cursos becas masters I directorio de ofertas
site programatium.com : site1 - site2 - site3 - site4 - site5 - site6 - site7