개발 & 데이터베이스/DB
오라클 PL/SQL RAISE_APPLICATION_ERROR 사용자 예외 처리
K.두부
2023. 5. 9. 22:08
반응형
PL/SQL에서 사용자 정의 함수를 만들 때 오류 코드 또한 사용자가 임의로 설정할 수 있다.
아래와 같은 방법으로 에러 메시지를 정의할 수 있는데, 오류 코드의 범위는 -20000 ~ -20999다.
RAISE_APPLICATION_ERROR(오류코드, 에러메시지);
오류코드: -20000 ~ -20999
예시
CREATE OR REPLACE PROCEDURE RAISE_TEST
IS
USER_ERROR EXCEPTION;
CNT NUMBER;
BEGIN
SELECT COUNT(*)
INTO CNT
FROM TMP;
IF CNT <= 3 THEN
RAISE USER_ERROR;
END IF;
EXCEPTION
WHEN USER_ERROR THEN
RAISE_APPLICATION_ERROR(-20001, '사용자 에러 발생!!!');
END;
임시로 TMP 테이블을 만들었고, 데이터가 하나도 없기 때문에 CNT=0이다.
즉, 예외를 강제로 발생시켰고 아래와 같은 예외가 발생하는 것을 볼 수 있다.

사용자 오류코드 범위를 벗어나면 어떻게 될까?
임시로 -19999로 설정해서 실행시켜봤다.
CREATE OR REPLACE PROCEDURE RAISE_TEST
IS
USER_ERROR EXCEPTION;
CNT NUMBER;
BEGIN
SELECT COUNT(*)
INTO CNT
FROM TMP;
IF CNT <= 3 THEN
RAISE USER_ERROR;
END IF;
EXCEPTION
WHEN USER_ERROR THEN
RAISE_APPLICATION_ERROR(-19999, '사용자 에러 발생!!!');
END;

반응형