안녕하세요. trigger 에 대해 질문드립니다.
DB에서는 sql 문장이 실행되기 전에 그 정보가 테이블에 데이타 형태로 저장(?)이 된다는 얘기를 들었습니다.
혹시 이벤트가 발생한 sql 문장 정보를 가져올수(?) 있는 방법이 없을까요?
제가 지금 작업 중인 부분은 테이블의 테이터가 insert, update, delete 되었을때
해당 row data 를 전부 sql 문 형태로 다른 테이블에 저장하는 것입니다.
예를 들어서 tb_main 이라는 테이블이 seq-number, name-varchar2(20) 으로 구성되어 있다고 하면
이 테이블에 이벤트가 발생했을때 tb_temp ( seq-number, sql-long ) 형태의 테이블에
해당 이벤트의 sql 문 (예컨테 insert 인 경우에는 insert into tb_main values(1, '홍길동') 이 되겠네요.. ) 을 저장하는 작업이지요.
즉, tb_main 테이블에 다음과 같은 이벤트가 발생했다면
insert into tb_main values (1, '홍길동1');
insert into tb_main values (2, '홍길동2');
update from tb_main set name = '홍길동1-1' where name = '홍길동1';
delete from tb_main where seq = 2;
tb_temp 테이블에는
seq sql
===================================================
1 insert into tb_main values (1, '홍길동1')
2 insert into tb_main values (2, '홍길동2')
3 update from tb_main set name = '홍길동1-1' where name = '홍길동1'
4 delete from tb_main where seq = 2
라는 데이타가 저장 되면 되는것이지요.
이작업을 해결하기 위해 위 sql 정보를 가로챌 필요가 있는 것이지요.
그럼 많은 답변 부탁드리겠습니다.
|