Notice
Recent Posts
Recent Comments
Link
투케이2K
94. (DB/데이터베이스) [ORACLE] exception when then PL/SQL 쿼리 및 문법 예외 상황 처리 설명 본문
DataBase
94. (DB/데이터베이스) [ORACLE] exception when then PL/SQL 쿼리 및 문법 예외 상황 처리 설명
투케이2K 2022. 12. 10. 10:38[학습 구분]
과목 : Database / 데이터베이스
[설 명]
1. exception 은 오라클에서 사용되며, PL/SQL 쿼리 및 문법에서 예외가 발생하면 여러개의 처리부 중에서 해당되는 예외 부분에서 에러를 처리 합니다
2. 문법 : exception when 조건 then 만족
- [조건] 에는 사전 정의된 오류, 사용자 정의 오류가 표시됩니다
- [만족] 에는 에러 발생 시 수행될 로직입니다
3. [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;
반응형
'DataBase' 카테고리의 다른 글
96. (DB/데이터베이스) LPAD , RPAD 공백 빈자리 채우기 함수 설명 (0) | 2022.12.10 |
---|---|
95. (DB/데이터베이스) [ORACLE] greatest, least 최대값, 최소값 찾기 함수 설명 (0) | 2022.12.10 |
93. (DB/데이터베이스) [ORACLE] declare begin end PL/SQL 쿼리 및 문법 실행 설명 (0) | 2022.12.10 |
92. (DB/데이터베이스) [ORACLE] SYS_GUID 고유 식별자 반환 함수 설명 (0) | 2022.12.10 |
91. (DB/데이터베이스) [ORACLE] SYS.UTL_ENCODE 데이터 인코딩 및 디코딩 내장 함수 설명 (0) | 2022.12.10 |
Comments