Db/Oracle

Oracle Trigger Sample

seongsland 2010. 4. 6. 23:55
CREATE OR REPLACE TRIGGER aft_trg_dd
AFTER INSERT OR UPDATE ON dd_table
FOR EACH ROW
DECLARE
  v_seq VARCHAR2(20);
 
  V_ERR_CODE VARCHAR2(20);
  V_ERR_MSG VARCHAR2(100);
  V_ERR_ETC VARCHAR2(30);
BEGIN
 
  IF INSERTING THEN
   -- 쿼리 처리
  ELSIF UPDATING THEN
    IF :OLD.seq = '2' AND :NEW.seq = '3'
    THEN
         -- 쿼리처리
    END IF;  
  END IF;
 
  EXCEPTION

        WHEN OTHERS THEN
            V_ERR_CODE := SQLCODE;
            V_ERR_MSG := SUBSTR(SQLERRM, 1, 100);
            V_ERR_ETC := v_seq;

            INSERT INTO ERR_LOG (DT, MODULE, CD, MSG, ETC)
            VALUES    ( TO_CHAR(SYSDATE,'YYYY-MM-DD'), 'aft_trg_dd', V_ERR_CODE, V_ERR_MSG, V_ERR_ETC);
END;