GOLDILOCKS 는 프로시저를 수행중 일어나는 예외상황에 대해 처리할 수 있는 Exception 을 지원합니다.
Exception 은 사용자가 지정할 수 있거나 혹은 미리 정의된 예외처리를 사용할 수 있습니다.
미리 정의된 예외처리는 다음과 같습니다.
이름 |
설명 |
CASE_NOT_FOUND |
CASE WHEN 조건에 모두 맞지 않으며 ELSE 절이 없는 경우 |
DUP_VAL_ON_INDEX |
INDEX 중복 오류가 발생한 경우 |
INVALID_CURSOR |
커서의 상태가 올바르지 않은 경우 |
INVALID_NUMBER |
숫자로 변환할 수 없는 경우 |
NO_DATA_FOUND |
SELECT 에 의해 0 건이 리턴되는 경우 |
ROWTYPE_MISMATCH |
2개의 로우타입 변수의 필드 타입이 서로 다른 경우 |
TOO_MANY_ROWS |
2건 이상의 로우가 반환되는 경우 |
VALUE_ERROR |
Type-Mismatch, Invalid-casting 등의 오류 |
ZERO_DIVIDE | 0 으로 나누기를 시도하는 경우 |
OTHERS | 위의 예외처리 명에 정의되지 않은 오류 사항을 포함 |
예를 들어 0 으로 나누려고 하는 경우입니다.
gSQL> DECLARE 2 V1 INTEGER; 3 BEGIN 4 V1 := 1 / 0; 5 6 EXCEPTION WHEN ZERO_DIVIDE THEN 7 DBMS_OUTPUT.PUT_LINE('Can Not Divided By Zero'); 8 WHEN OTHERS THEN 9 DBMS_OUTPUT.PUT_LINE('Others Exception' ); 10 DBMS_OUTPUT.PUT_LINE('SQLCODE : ' || SQLCODE || ' SQLERRM : ' || SQLERRM ); 11 END; 12 / Can Not Divided By Zero Anonymous PL block executed.
'Database > Goldilocks' 카테고리의 다른 글
[GOLDILOCKS] ERR-HY014(18008) : Limit on the number of SQL statement exceeded (0) | 2018.10.10 |
---|---|
[GOLDILOCKS] DBeaver 연동하기 (0) | 2018.10.01 |
[GOLDILOCKS] PL/SQL DBMS_OUTPUT 옵션 사용하기 (0) | 2018.08.21 |
[GOLDILOCKS] PL/SQL IF, CASE, FOR 사용하기 (0) | 2018.08.21 |
[GOLDILOCKS] ERR-24000(19010): Invalid cursor state : A cursor was open on the StatementHandle. (0) | 2018.08.21 |