[Oracle] 38.예외처리
예외처리
자바에서와 같이 오라클에서 예외가 발생했을 때 예외를 처리할 수 있습니다.
예외의 종류는 오라클에서 미리 제공하는 오라클 예외와
사용자에 의해 정의되는 사용자 정의 예외가 있습니다.
오라클 예외는 다음과 같은 것들이 있습니다.
예외처리 실습
- 오라클 예외처리
CREATE OR REPLACE PROCEDURE ex01 (
p_eid emp.employee_id%TYPE
) IS
ename VARCHAR2(50);
BEGIN
SELECT
first_name|| ' '|| last_name
INTO ename
FROM
emp
WHERE
employee_id = p_eid;
dbms_output.put_line('사원명: ' || ename);
EXCEPTION --예외처리
WHEN no_data_found THEN
dbms_output.put_line('조회된 데이터가 없습니다.');
END;
/
EXEC ex01(500); --사원번호 500은 존재 x
- 사용자 정의 예외 처리
CREATE OR REPLACE PROCEDURE del_row ( p_empid employees.employee_id%TYPE)
IS
null_ex EXCEPTION; --예외정의
BEGIN
IF --사원번호가 null이거나 0이면 예외발생시킴
( p_empid IS NULL OR p_empid = 0 )
THEN
RAISE null_ex;
END IF;
dbms_output.put_line(p_empid);
DELETE FROM emp -- 해당 행 삭제
WHERE
employee_id = p_empid;
EXCEPTION
WHEN null_ex THEN
dbms_output.put_line('사원번호를 정확히 입력해주세요');
END;
/
EXECUTE del_row(NULL);