CREATE OR REPLACE TRIGGER DTULTATU_KDSMENSAGEM
BEFORE INSERT OR UPDATE OR DELETE 
ON KDSMENSAGEM FOR EACH ROW 
BEGIN 
   IF INSERTING THEN 
      :NEW.DTULTATU := SYSDATE; 
   END IF; 
   IF UPDATING THEN 
      IF (NVL(:OLD.CDMENSAGEM     ,0) <> NVL(:NEW.CDMENSAGEM     ,0)) OR 
         (NVL(:OLD.DSMENSAGEM     ,0) <> NVL(:NEW.DSMENSAGEM     ,0)) OR 
         (NVL(:OLD.NRHORA         ,0) <> NVL(:NEW.NRHORA         ,0)) OR
         (NVL(:OLD.NRREPTINTERV   ,0) <> NVL(:NEW.NRREPTINTERV   ,0)) OR
         (NVL(:OLD.NRQTDREPTINTERV,0) <> NVL(:NEW.NRQTDREPTINTERV,0)) OR
         (NVL(:OLD.IDREPETEDIAS   ,0) <> NVL(:NEW.IDREPETEDIAS   ,0)) OR
         (NVL(:OLD.IDMSGATIVA     ,0) <> NVL(:NEW.IDMSGATIVA     ,0)) THEN 
         :NEW.DTULTATU := SYSDATE; 
      END IF; 
   END IF; 
   IF DELETING THEN 
      INSERT INTO DELETECACHE (NMTABLECACHE, CDFILICACHE, DSKEYCACHE, DTULTATUCACH) 
                       VALUES ('KDSMENSAGEM', '', 'CDMENSAGEM='||:OLD.CDMENSAGEM||';', SYSDATE); 
   END IF; 
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('DTULTATU_KDSMENSAGEM','6.06.000'); END;
/
