예외처리 고급 예시
3-1. 사용자 정의 예외 처리
DECLARE
e_too_young EXCEPTION; v_age NUMBER := 15;
BEGIN
IF v_age < 18 THEN RAISE e_too_young; END IF;
EXCEPTION
WHEN e_too_young THEN DBMS_OUTPUT.PUT_LINE('나이가 너무 어립니다!');
END;
⸻
3-2. OTHERS 예외 로그 저장
DECLARE
v_emp_id NUMBER := 99999; v_name VARCHAR2(50);
BEGIN
SELECT first_name INTO v_name FROM employees WHERE employee_id = v_emp_id;
EXCEPTION
WHEN OTHERS THEN INSERT INTO error_log(log_time, message) VALUES (SYSDATE, SQLERRM); DBMS_OUTPUT.PUT_LINE('오류 발생: ' || SQLERRM);
END;
SQLERRM = 최근 발생한 에러 메시지 SQLCODE = 최근 에러 코드
⸻
요약
항목 요점 프로시저 동작 실행 (값 반환 X) 함수 값을 반환 (RETURN 사용) 커서 여러 행 반복 처리 시 사용 예외처리 EXCEPTION 블록 + 사용자 정의 또는 OTHERS 처리 가능
⸻