"트랜젹션이 일어 났을때..한시간 간격으로.." 라고 표현하셨는데요...
두가지 표현이 서로 배치되는 표현이네요.
트랜젹션이 일어 났을때.. 처리는 트리거로 하면 되고요
한시간 간격으로..처리는 프로시져생성해서 Job 또는 Secheduler 에 등록하면 됩니다.
I, U, D 구분을 두어야 하는 거라면?
1시간 간격이 아닌 실시간일 듯 하네요. 트리거가 맞을 듯.
아래는 트리거 샘플입니다. 업무로직에 맞게 수정하세요.
CREATE OR REPLACE TRIGGER tri_test AFTER INSERT OR UPDATE OR DELETE ON a FOR EACH ROW BEGIN IF INSERTING THEN INSERT INTO b(gb, dt, pk, new_c1, new_c2) VALUES('I', sysdate, :NEW.pk, :NEW.c1, :NEW.c2) ; ELSIF UPDATING THEN INSERT INTO b(gb, dt, pk, new_c1, new_c2, old_c1, old_cd) VALUES('U', sysdate, :NEW.pk, :NEW.c1, :NEW.c2, :OLD.c1, :OLD.c2) ; ELSIF DELETING THEN INSERT INTO b(gb, dt, pk, old_c1, old_cd) VALUES('D', sysdate, :OLD.pk, :OLD.c1, :OLD.c2) ; END IF; END; /