예외와 예외처리
1. 사전정의예외
2. 비사전정의예외
3. 사용자정의예외
EXCEPTION
WHEN 예외명1 [OR 예외명2...] THEN
처리1;
WHEN OTHERS THEN
처리2;
1. 사전정의 예외
DUP_VAL_ON_INDEX
INVALID_NUMBER
NO_DATA_FOUND
PROGRAM_ERROR
TOO_MANY_ROWS
VALUE_ERROR
ZERO_DIVIDE
...
2. 비사전정의 예외
예외명 EXCEPTION;
PRAGMA EXCEPTION_INIT(예외명, 에러번호)
cons_err EXCEPTION;
PRAGMA EXCEPTION_INIT(cons_err, -2292)
PRAGMA는 컴파일러 지시어로 EXCEPTION_INIT과 함께 사용하면 특정한 에러 번호에 사용자가 정의한 이름을 매핑시키는 역할을 합니다. 프로그램 컴파일 단계에서 매핑이 되어서 지정된 이름을 사용하여 예외 처리 루틴을 만들 수 있게 됩니다.
*************************************************************************************************
SQLCODE 에러번호
SQLERRM 에러번호에 대응하는 메세지
* SQL에 직업 사용할 수 없다.
err_code := SQLCODE;
err_msg := SQLERRM;
INSERT INTO TB_ERRORS VALUES(err_code, err_msg);
*************************************************************************************************
3. 사용자정의 예외
DECLARE
예외명 EXCEPTION;
BEGIN
RAISE 예외명;
EXCEPTION
WHEN 예외명 THEN
처리;
END;
RAISE_APPLICATION_ERROR(에러번호, 메서지 [,TRUE | FALSE]);
'■ Data Skill ■ > PL-SQL' 카테고리의 다른 글
PL/SQL (20) - 트리거 (Trigger) (0) | 2023.03.18 |
---|---|
PL/SQL (19) - Collections (중첩테이블 - Nested Table) (0) | 2023.03.18 |
PL/SQL (18) - Collections (VARRAY) (0) | 2023.03.18 |
PL/SQL (17) - Collections (Index-by Table) (1) | 2023.03.18 |
PL/SQL (16) - 오브젝트 타입 (BFILE) (0) | 2023.03.18 |
댓글