Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2012, 14:42
mamilo59
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 5 meses
Puntos: 0
trigger para auditoria

Estimados.

Tengo un problema y espero que puedan damre alguna solucion ya que no he podido encontrar ninguna, tengo 2 trigger en un proyecto el cual los ocupo para auditoria de tablas, los cuales obviamente despues de un insert o update o delete se ejecutan el problemas es que los tengo exo de distinta forma uno con este tipo de if

if :new.columna <> :old.columa then

insert into auditoria(id,nombreTabla,nombreColumna,valorAntigu o,ValorNuevo,fecha);

end if;

y otro if de esta forma

if updating('columna') then

insert into auditoria(id,nombreTabla,nombreColumna,valorAntigu o,ValorNuevo,fecha);

end if;

el problema es que haciendo el trigger con el primer if, me inserta 2 filas cuando la cantidad de columnas alteradas son 5, y en el otro cuando altero 5 columnas se insertan las 5 pero independientemente si tienen dato o no

mi consulta es porque en el primer if no insertaria todas las columnas si he visto ejemplos de ese mismo ejercicio pero no funciona como debe.

espero alguna respuesta porfa

a y tambien otra pregunta, porque no en oracle no funciona el inserting? ya que tengo un if que dice esto

if inserting then

if :new.columna <> :old.columna then

insert into auditoria(id,nombreTabla,nombreColumna,valorAntigu o,ValorNuevo,fecha);

end if;
end if;

y cuando se ejecuta un insert en la tabla no me inserta nada

el trigger tiene esto en el encabezado

CREATE OR REPLACE TRIGGER auditoria
BEFORE DELETE OR INSERT OR UPDATE
ON tabla
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW

espero ojala puedan ayudarme