검색결과 리스트
Non-Predefined Oracle Server에 해당되는 글 1건
- 2012.03.29 [PL/SQL] Exception
글
예외는 다들 알고 있는 개념일 것이다.
어떠한 내용이 동작을 하다가 예상치 못한 경우들이 생겼을 때 예외처리를 해 준다.
JAVA나 C#에서 보면 TRY-CATCH 구문이다.
다음은 오류의 종류이다.
예외 |
설명 |
처리 |
정의 된 오라클 서버 오류(Predefined Oracle Server)
( |
PL/SQL에서 발생하는 오류 |
자동 트랩처리 |
정의되지 않은 오라클 서버 오류(Non-Predefined Oracle Server) |
정의 된 오라클 서버 오류 외 |
선언부에서 선언 해야하며 자동 트랩 |
사용자 정의 오류(User-Defined) |
개발자가 정한 내용에서 벗어 나는 오류 |
선언부에서 선언하며 RAISE 사용하여 호출 |
미리 정의된 예외 종류는 http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/errors.htm 에 보면 나와 있다.
몇가지 예를 들어서 보면 다음과 같다.
예외 |
설명 |
NO_DATA_FOUND |
SELECT 의한 데이터가 없을 경우 |
DUP_VAL_ON_INDEX |
UNIQUE 제약 가지는 컬럼에 중복 INSERT 발생 경우 |
ZERO_DIVIDE |
0으로 나눌 경우 |
INVALID_CURSOR |
잘못된 커서 연산 경우 |
정의 되지 않은 경우는 먼저 예외의 이름을 선언하며, PRAAGMA EXCEPTION_INIT을 이용하여 오류 번호를 결합한 다음 EXCEPTION 부분에서 처리를 해야한다.
다음은 그 예이다.
CREATE OR REPLACE PROCEDURE TEST
IS
test_exception EXCEPTION;
PRAGMA EXCEPTION_INIT(test_exception,오류 번호);
BEGIN
EXCEPTION
WHEN test_exception THEN 처리 내용
END;
위에서 처리 번호는 오라클 서버 에러에 대해 어느정도 참조하는 것이 좋다.
RECENT COMMENT