DATOR


EXCEPTION을 피하는 방법 SQL


PL/SQL 사용시 ERROR가 발생되도 멈추지 않고, 끝까지 수행 시켜야 할때가 있다.

 

이럴때 다음과 같은 방법을 활용하자.
다음문장을 보면 FOR문에서 EXCEPTION이 발생해도 멈추지 않고, 그 다음행으로 넘어간다.

 

FOR TAB_LIST IN (SELECT *
                       FROM 테이블 ) LOOP
                                                
               BEGIN
               ...
               ...
               ...
               EXCEPTION
                 WHEN OTHERS THEN
                     V_ERR_MSG :=  SQLCODE|| ' : ' ||SQLERRM ;
       
               INSERT INTO ERROR(WORK_DATE,ERR_MSG)
               VALUES(SYSDATE,V_ERR_MSG);
               COMMIT;
               END;
END LOOP;

설명
 
FOR 문안에 BEGIN~ ~END로 새로운 블록을 설정하고
EXCEPTION을 사용하면 ERROR가 발생해도 멈추지 않고,
처리후에 FOR 문의 그 다음 행으로 계속 수행된다.

 

EXCEPTION 절에  로그성 테이블로 어떤 에러가 발생했는지만
저장하고 계속 수행할 필요가 있을 경우에 활용해 보자.              

Tag :

Leave Comments