상세 컨텐츠

본문 제목

오라클 예외처리(EXCEPTION) 1편, PRAGMA EXCEPTION_INIT

프로그래밍/Oracle

by ........? 2016. 2. 5. 17:12

본문

오라클의 procedure 나 function 사용시 예외발생에 대한 처리가 반드시 필요.

 

그 중에서도 원하는 예외부분이나 특정예외일때 그 예외에 따른 결과값을 원할때 사용자정의 exception 을 활용

 

--기본적인 형태

예외이름 EXCEPTION;

PRAGMA EXCEPTION_INIT(예외이름, 오류번호);

 

 

--예제

CREATE OR REPLACE FUNCTION TEST_F(IN_CHAR_DATE IN VARCHAR2)
 RETURN VARCHAR2
IS
 V_RETURN_VAL VARCHAR2(3);
 
 --사용자 정의 예외 이름
 V_EXCEPTION  EXCEPTION;
 
 --ORA-01841: 년은 영이 아닌 -4713 과 +4713 사이의 값으로 지정해야 합니다. 에 대한 오류번호
 PRAGMA EXCEPTION_INIT(V_EXCEPTION, -1841);
 
BEGIN
 IF TO_DATE(IN_CHAR_DATE,'YYYYMMDD') > SYSDATE THEN
  V_RETURN_VAL := 'OK';
 ELSE
  V_RETURN_VAL := 'NO';
 END IF;
          
 RETURN V_RETURN_VAL;
 
EXCEPTION
 --미리 정의해놓은 예외처리가 발생했을 경우 처리부분
 WHEN V_EXCEPTION THEN
  RETURN 'ER2';
 WHEN OTHERS THEN
--  RETURN sqlcode||' / '||sqlerrm;

  RETURN 'ER1';

END TEST_F;

 

--예제결과

SELECT TEST_F('A') TEST1,
       TEST_F('20160101') TEST2
 FROM DUAL
;

 

 

 

 

관련글 더보기

댓글 영역