Oracle - trigger

 
Vista:

trigger

Publicado por Argelia (3 intervenciones) el 30/04/2007 13:31:25
Hola a todos!!!! Estoy empezando con oracle 9i y necesito lanzar un trigger que cuando se modifique o inserte un registro en cualquier tabla de cualquier esquema de mi base de datos, se inserte en una tabla 'tabla' la fecha,hora, usuario, tabla(en la que se ha realizado el insert o update) y el esquema en el que se ubica la tabla anterior. Mi duda es si hay alguna manera de lanzar el mismo trigger desde cualquier tabla de la base de datos que pille dinámicamente el nombre de dicha tabla para guardar su nombre en la tabla en la que quiero que se registren los cambios. En el siguiente código creo el trigger pero para que se ejecute el trigger cuando se produzca un cambio en la tabla diccionario.tipo_tabla pero yo lo que quiero es que ese nombre lo pille desde cualquier tabla de la base de datos y que el trigger sea capaz de lanzarse desde cualquier parte. Bueno antes que nada , se puede hacer esto que estoy pidiendo o tengo que crear un trigger para cada tabla de cada esquema??? claro, es que a lo mejor no se puede y yo aquí largando tremento discurso.

CREATE TRIGGER DICCIONARIO.CAMBIO
After insert or update on diccionario.tipo_tabla
FOR EACH ROW
BEGIN
insert into diccionario."Tabla"(FECHA,SESION,ESQUEMA,TABLA) values (Sysdate,(select user from dual),(select substr(sys_context('USERENV','CURRENT_SCHEMA'),1,50) from dual ), 'tipo_tabla');
END;

GRACIAS A TODOS!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:trigger

Publicado por Rodolfo Reyes (445 intervenciones) el 30/04/2007 16:36:16
hasta donde llegas mis conocimientos, creo que no se puede crear un trigger generico que se dispara para cualquier tabla. Para esto solo he visto dos soluciones.

1) Crear el trigger de auditoria en todas las tablas.

2) Activiar en tu base de datos archive log. Esto generara archivos de log, donde quedan anotadas todas las tracciones. Luego crear un programa que lea los archivos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar