반응형
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;
반응형
'개발 & 데이터베이스 > DB' 카테고리의 다른 글
오라클 쿼리문 수행(실행) 시간 측정하는 방법 (SET TIMING ON) (0) | 2023.10.24 |
---|---|
오라클 COUNT(*) COUNT(1) vs COUNT(컬럼) 차이점 (0) | 2023.09.05 |
오라클 여러 행을 하나의 컬럼으로 만들기 (LISTAGG) 오라클 11g R2 중복 제거 (0) | 2023.04.02 |
오라클 ORA-06533: 첨자가 개수를 넘었습니다. (0) | 2023.01.30 |
오라클 cmd에서 사용자 계정 생성 및 권한 부여 방법 (0) | 2023.01.25 |