오라클 내부에 미리 정의되어 있는 예외 (Predefined Oracle Server, 약 20개 존재)
대표적인 시스템 예외
시스템 예외 | 설명 |
---|---|
DUP_VAL_ON_INDEX | UNIQUE 제약조건을 갖는 컬럼에 중복되는 데이터를 INSERT할 경우 |
INVALID_CURSOR | 허용되지 않은 커서 작업을 수행할 경우 |
NO_DATA_FOUND | SELECT 시 조회되는 결과가 없을 경우 |
TOO_MANY_ROWS | 하나만 리턴해야 하는 SELECT문이 하나 이상의 행을 반환할 경우 |
ZERO_DIVIDE | 0으로 나눌 경우 |
예외 처리 구문 (CASE문 구조와 비슷하다!)
EXCEPTION WHEN 예외1 TEHN 예외처리구문1
WHEN 예외2 THEN 예외처리구문2
...
WHEN OTHERS THEN 예외처리구문N;
DECLARE
NUM NUMBER := 0;
BEGIN
NUM := 10 / 0;
DBMS_OUTPUT.PUT_LINE('SUCCESS');
EXCEPTION
WHEN ZERO_DIVIDE THEN DBMS_OUTPUT.PUT_LINE('ZERO_DIVIDE 예외 발생');
END;
/