Notice
Recent Posts
Recent Comments
Link
투케이2K
72. (Oracle/오라클) exception when then 사용해서 예외 상황 에러 확인 실시 본문
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : Toad
개발 언어 : Oracle
/* =========================== */
/* =========================== */
[소스 코드]
/*
[exception when then 사용해서 예외 상황 에러 확인 실시]
1. exception 은 예외가 발생하면 여러개의 처리부 중에서 해당되는 예외부분에서 처리됩니다
2. exception when 조건 then 만족 - 조건에는 사전 정의된 오류, 사용자 정의 오류가 표시됩니다
만족에는 에러 발생 시 수행될 로직입니다
*/
DECLARE
M_DATA VARCHAR2 (100) := '2021-01-25'; --초기 변수 선언
O_MSG VARCHAR2 (100); --결과값을 담을 변수 선언
M_STEP VARCHAR2(100) := '0'; --어느 부분에서 에러가 발생한지 확인하기 위한 변수
BEGIN
M_STEP := '1'; --1단계 정의 실시
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE('M_STEP : ' || M_STEP);
DBMS_OUTPUT.PUT_LINE('M_DATA : ' || M_DATA);
DBMS_OUTPUT.PUT_LINE('=============================');
M_STEP := '2'; --2단계 정의 실시
SELECT M_DATA || TO_CHAR(SYSDATE, ' HH24:MI:SS')
INTO M_DATA
FROM DUAL;
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE('M_STEP : ' || M_STEP);
DBMS_OUTPUT.PUT_LINE('M_DATA : ' || M_DATA);
DBMS_OUTPUT.PUT_LINE('=============================');
M_STEP := '3'; --3단계 정의 실시
M_DATA := M_DATA / 0; -- 일부러 예외 발생 위해 0나누기 수행
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE('M_STEP : ' || M_STEP);
DBMS_OUTPUT.PUT_LINE('M_DATA : ' || M_DATA);
DBMS_OUTPUT.PUT_LINE('=============================');
M_STEP := '4'; --4단계 정의 실시
O_MSG := '{ " RESULT " : " SUCCESS " }';
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE('M_STEP : ' || M_STEP);
DBMS_OUTPUT.PUT_LINE('M_DATA : ' || M_DATA);
DBMS_OUTPUT.PUT_LINE(O_MSG);
DBMS_OUTPUT.PUT_LINE('=============================');
EXCEPTION
WHEN NO_DATA_FOUND
THEN O_MSG := '{ " EXCEPTION " : " NO_DATA_FOUND " }';
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE(O_MSG);
DBMS_OUTPUT.PUT_LINE('=============================');
WHEN OTHERS
THEN O_MSG := '{ " EXCEPTION " : " M_STEP := '||M_STEP||' "'||' }';
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE(O_MSG);
DBMS_OUTPUT.PUT_LINE('=============================');
END;
/* =========================== */
[결과 출력]
/* =========================== */
/* =========================== */
[요약 설명]
1. exception 은 예외가 발생하면 여러개의 처리부 중에서 해당되는 예외부분에서 처리됩니다
2. exception when 조건 then 만족 - 조건에는 사전 정의된 오류, 사용자 정의 오류가 표시됩니다
만족에는 에러 발생 시 수행될 로직입니다
/* =========================== */
반응형
'OracleDB' 카테고리의 다른 글
Comments