Q&A

  • 오라클 DB의 트리거(trigger)가 잘못되었을때 리턴값이 안 받아집니다.
오라클 테이블에 데이터 insert 하는데 트리거를 잘못 작성해서 데이터가 안 들어가졌네요.

insert 할때 exception 처리 다 했는데 리턴값이 안나와 데이터가 들어간 줄 알았습니다.

          try
            ADOConnection1.BeginTrans;
            ExecSQL;
            ADOConnection1.CommitTrans;
          except
            On  E:Exception  Do
            begin
                stxt := '입력실패 : ' + e.message;
                ProcLog(stxt);
                if self.ADOConnection1.InTransaction  then
                begin

                    ADOConnection1.RollbackTrans;
                end;
            end;

소스는 이렇게 했는데 에러 안 나고 넘어가거든요.

트리거가 정상일때는 상관없는데 트리거 처리시 에러발생하면 어떻게 알 수 있을까요?
1  COMMENTS
  • Profile
    최용일 2006.09.11 19:56
    안녕하세요. 최용일입니다.

    트리커에서 예외를 발생시켰다면 except구문이 실행되어서 예외가 처리됩니다.

    아마도 트리거를 잘못작성하신듯하네요...

    트리거에서 RAISE_APPLICATION_ERROR함수를 이용해서 잘못된 데이터가 들어갔을때 예외를 일으키세요...

    ^^ 항상 즐코하세요...