PL/SQL

PL/SQL오류의 종류

달콤한부자 2014. 11. 25. 19:10

PL/SQL오류의 종류

예 외 설 명 처 리
미리 정의된 오라클 서버 오류(Predefined Oracle Server) PL/SQL에서 자주 발생하는 약20개의 오류 선언할 필요도 없고, 발생시에 예외 절로 자동 트랩(Trap) 된다.
미리 정의되지 않은 오라클 서버 오류 (Non-Predefined Oracle Server) 미리 정의된 오라클 서버 오류를 제외한 모든 오류 선언부에서 선언해야 하고 발생시 자동 트랩된다.
사용자 정의 오류 (User-Defined) 개발자가 정한 조건에 만족하지 않을경우 발생하는 오류 선언부에서 선언하고 실행부에서 RAISE문을 사용하여 발생시켜야 한다

-  미리 정의된 오라클 서버 오류 (Predefined Oracle Server)

- NO_DATA_FOUND : SELECT문이 아무런 데이터 행을 반환하지 못할 때

- DUP_VAL_ON_INDEX : UNIQUE 제약을 갖는 컬럼에 중복되는 데이터가 INSERT 될 때

- ZERO_DIVIDE : 0으로 나눌 때

- INVALID_CURSOR : 잘못된 커서 연산예

 

 

예시)  WHEN   DUP_VAL_ON_INDEX   THEN
   
          SHOW_MESSAGE('데이터가 존재 합니다.');
          SHOW_MESSAGE('DUP_VAL_ON_INDEX 에러 발생');

      WHEN   TOO_MANY_ROWS   THEN 

        DBMS_OUTPUT.PUT_LINE('TOO_MANY_ROWS에러 발생');

      WHEN   NO_DATA_FOUND   THEN 

        DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND에러 발생');

      WHEN OTHERS THEN

        DBMS_OUTPUT.PUT_LINE('기타 에러 발생');