Ver Mensaje Individual
  #2  
Antiguo 21-10-2004
aglopez aglopez is offline
Miembro
 
Registrado: may 2003
Posts: 11
Reputación: 0
aglopez Va por buen camino
Thumbs up Mira el siguiente ejemplo

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;
Responder Con Cita