Este es un disparador de BD que tengo creado para auditar
unos cambios en la tabla ARTICULOS
A ver si es esto lo que estabas buscando.
Código SQL
[-]
CREATE OR REPLACE TRIGGER "GESTION".CAMBIO_ARTICULOS
BEFORE UPDATE
ON ARTICULOS FOR EACH ROW
WHEN ( (OLD.ACTIVO<>NEW.ACTIVO) OR
(OLD.INTERNET<>NEW.INTERNET) OR
(OLD.TIPO_EVAL<>NEW.TIPO_EVAL) )
DECLARE
FEC DATE;
N INTEGER;
MODU VARCHAR2(50);
MAC VARCHAR2(40);
BEGIN
SELECT SUBSTR(MACHINE,1,40) INTO MAC
FROM V$SESSION
WHERE AUDSID=USERENV('SESSIONID');
BEGIN
SELECT MODULO_ACTUAL INTO MODU FROM USUARIOS WHERE LOGIN=MAC;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MODU:='DESCONOCIDO';
END;
INSERT INTO CAMBIO_ARTICULOS
SELECT SYSDATE,MAC,MODU,:OLD.ID_ARTICULO,:OLD.ACTIVO,:NEW.ACTIVO,:OLD.INTERNET,
:NEW.INTERNET,:OLD.TIPO_EVAL,:NEW.TIPO_EVAL FROM DUAL;
END;