Ver Mensaje Individual
  #10 (permalink)  
Antiguo 26/01/2010, 16:38
yong321
 
Fecha de Ingreso: enero-2010
Mensajes: 29
Antigüedad: 14 años, 3 meses
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