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;
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;