오라클 PL/SQL 예외처리(Exception)
오라클에서 제공하는 예외와 사용자가 정의하는 커스텀 예외가 있다.
커스텀 예외 처리 : 예외 선언 -> 예외 호출 -> 예외 수행 순서로 작성한다.
예제:
CREATE OR REPLACE
PROCEDURE CUSTOM_PROC(
NUM IN NUMBER,
OUT_MSG OUT VARCHAR2
)
IS
NUM_CHECKER EXCEPTION -- 커스텀 예외 선언
BEGIN
IF NUM > 10 THEN -- EXCEPTION 조건 설정
RAISE NUM_CHECKER; -- EXCEPTION 호출
END IF;
RAISE NO_DATA_FOUND;
EXCEPTION
WHEN NUM_CHECKER THEN -- 조건이 맞아 예외가 발생한 경우(RAISE)
BEGIN
OUT_MSG := '10이상';
RETURN; --RETURN이 없으면 쿼리를 계속 수행함
END;
WHEN OTHERS THEN --조건에 맞지 않는 경우
BEGIN
OUT_MSG := 'OTHER 확인';
END;
OUT_MSG := '끝';
END;
오라클에서 제공하는 예외를 사용하는 프로시저 예제:
CREATE OR REPLACE
PROCEDURE PROC_TEST1(
NUM IN NUMBER,
OUT_MSG OUT VARCHAR2
)
IS --여기서 커스텀 예외같은 경우에 선언을 해줘야 하지만 오라클에서 제공하는 예외의 경우 선언이 필요 없다.
BEGIN
INSERT INTO TBL_EX(ONE) VALUES('A');
EXCEPTION
WHEN ACCESS_INTO_NULL THEN
BEGIN
OUT_MSG := 'EXCEPTION 발생';
END;
END;
'공부 > 데이터베이스' 카테고리의 다른 글
[oracle] 패키지 (0) | 2022.10.24 |
---|---|
[oracle] 프로시저, 함수 (1) | 2022.10.24 |
[ORACLE] 시퀀스 (0) | 2022.10.24 |
[데이터베이스] 오라클 CASE WHEN 표현식 (0) | 2022.06.15 |
[데이터베이스] mysql에서 text와 varchar의 차이 (0) | 2022.03.02 |