트리거 생성 0 1 1,391

by 손님 트리거 [2012.12.12 10:15:09]



안녕하세요~트리거 관련해서 문의좀~~ㅎㅎ

A라는 테이블이 있고
A# 이라는 구조가 동일한 테이블을 생성하였습니다.
A테이블은 평문이고 A#은 암호화되서 들어가야 합니다.
A테이블에 데이터 입력시 트리거를 이용하려고 합니다.
(A#으로 암호화 되어 입력후 A테이블을 내용 삭제)

근데 ORA-04091 란 에러메세지가 나오네요
트리거에서는 하나의 테이블만 수정가능하다는건가?!ㅎㅎㅎ
Statement 트리거를 사용하라고 하는데 잘 이해가 안되네요~

도움좀~~~
by 마농 [2012.12.12 13:52:33]
ORA-04091 은 트리거 대상 테이블에 대해 DML 을 수행하면 나는 에러입니다.
이렇게 하면 안되구요.
A 가 테이블 맞나요? 혹시 뷰는 아닌거죠?
1. 만약 뷰라면 INSTEAD OF 트리거를 이용하시면 됩니다.
2. 테이블이라면? 입력 되자마자 삭제된다는 것인데..
그렇다면 굳이 A 를 거치지 않고 바로 A# 에 입력하는 방법이 있습니다.
A# 에 평문을 입력하면 BEFORE 트리거에서 해당항목만 암화화 해주시면 됩니다.
:new.col := 암화화함수(:new.col);
3. A 에 꼭 입력을 해야만 한다면?
패키지 변수 선언 및 행트리거와 문장트리거를 오가며
복잡한 로직으로 구현하는 방법이 있긴 합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입