DataBase/PL SQL
6. 사용자 정의 예외
RoarinGom
2021. 2. 23. 19:49
: 사용자가 임의의 예외를 정의하고 강제로 예외를 발생시켜서 확인
DECLARE 이용 예외 정의
사용자정의예외명 EXCEPTION;
BEGIN IF 조건문 THEN
RAISE 사용자정의예외명;
END IF;
EXCEPTION WHEN 사용자예외정의 THEN 처리 메세지 END;
DECLARE
e_user_exception Exception;
cnt NUMBER:=0;
BEGIN
SELECT COUNT(*)
INTO cnt
FROM EMPLOYEES
WHERE DEPARTMENT_ID=40;
IF cnt<5 THEN
RAISE e_user_exception;
END IF;
EXCEPTION
WHEN e_user_exception THEN
DBMS_OUTPUT.PUT_LINE('5명 이하 부서입니다');
END;
예시2)
DECLARE
e_user_exception EXCEPTION;
v_deptno NUMBER:=110;
v_cnt NUMBER;
v_employee_id employees2.employee_id%TYPE;
BEGIN
SELECT MAX(EMPLOYEE_ID)+1
INTO v_employee_id
from employees2;
SELECT count(*)
INTO v_cnt
FROM EMPLOYEES2
where department_id=v_deptno;
SYS.DBMS_OUTPUT.PUT_LINE('부서번호 값 개수:'||v_cnt);
if v_cnt=0 THEN
RAISE e_user_exception;
INSERT INTO EMPLOYEES2(EMPLOYEE_ID,LAST_NAME, EMAIL, HIRE_DATE,JOB_ID, DEPARTMENT_ID)
VALUES(v_employee_id,'HI','H@HI.COM',SYSDATE,'AD_VP',v_deptno);
End if;
Exception
When e_user_exception THEN
DBMS_OUTPUT.PUT_LINE('부서번호 값이 존재하지 않습니다!!');
when others then
dbms_output.put_line('기타 예외');
END;