[ORACLE | 함수] IF, ELSIF, ELSE 및 NULL 비교 방법 정리, NO_DATA_FOUND
ORACLE 함수 관련 및 제어문을 예시를 통해 정리한다.
create or replace FUNCTION FN_MY_FUNCTION( //내 함수명 선언
PARAM1 IN VARCHAR2 //함수 파라미터 변수 선언(PARAM1)
,PARAM2 IN VARCHAR2 //함수 파라미터 변수 선언(PARAM2)
) RETURN VARCHAR2 IS
MY_RESULT VARCHAR2(100); //리턴할 변수 선언(MY_RESULT)
BEGIN
BEGIN
SELECT
VALUE_TO_RETURN
INTO MY_RESULT //쿼리 결과를 리턴 변수에 담기
FROM MY_TABLE1 A, MY_TABLE2 B
AND A.COL1 = B.COL1;
EXCEPTION //예외 케이스 선언
WHEN NO_DATA_FOUND THEN //쿼리 결과가 0건일 경우
IF (PARAM1 = '01') THEN
MY_RESULT := 'PARAM1이 01인 경우';
ELSIF (PARAM1 IS NULL) THEN //NULL과 비교할 때 괄호로 감싸야 정상 작동, ELSEIF가 아님
MY_RESULT := 'PARAM1이 NULL인 경우';
ELSE
MY_RESULT := '이도 저도 아닌 경우';
END IF;
END;
RETURN MY_RESULT; //MY_RESULT를 리턴
END MY_FUNCTION;