
26/01/2010, 16:38
|
| | Fecha de Ingreso: enero-2010
Mensajes: 29
Antigüedad: 15 años Puntos: 3 | |
Respuesta: Ayuda con Trigger Tal vez usted puede utilizar instead-of trigger. Al principio, mire este ejemplo:
SQL> create table t (x int);
Table created.
SQL> create view v as select * from t;
View created.
--Elimina dbms_output en la producción, que es sólo para depurar
SQL> create or replace trigger t_v
2 instead of insert on v
3 for each row
4 begin
5 if :new.x > 10 then
6 dbms_output.put_line('Too big!');
7 else
8 insert into t values (:new.x);
9 dbms_output.put_line('Good!');
10 end if;
11 end;
12 /
Trigger created.
SQL> set serverout on
SQL> insert into v values (11);
Too big!
1 row created.
SQL> select * from t;
no rows selected
SQL> insert into v values (9);
Good!
1 row created.
SQL> select * from t;
X
------------
9
Ignora el primer mensaje "1 row created." Todo lo que necesitas es
rename DEPARTAMENTO to DEPARTAMENTO_table;
create view DEPARTAMENTO as select * from DEPARTAMENTO_table;
create trigger comprueba_departamento instead of insert on DEPARTAMENTO ...
Yong Huang
Última edición por yong321; 27/01/2010 a las 14:43 |