
이것은 2개의 입력 연도, 월, 일의 날짜 범위와 쿼리문을 실행하는 함수의 예입니다. 간단한 함수지만 함수를 만들고 실행하기 위한 템플릿으로 사용할 수 있도록 정리하겠습니다.
▣ GET_DAYS.sql
CREATE OR REPLACE FUNCTION TEST.GET_DAYS(V_DAY1 VARCHAR, V_DAY2 VARCHAR) RETURN VARCHAR
IS
V_DAYS VARCHAR(8) ;
BEGIN
V_DAYS := TO_DATE(V_DAY2, 'yyyymmdd') - TO_DATE(V_DAY1, 'yyyymmdd') ;
RETURN V_DAYS;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
WHEN OTHERS THEN
RETURN NULL;
END GET_DAYS;
▣ GET_DAYS_EXEC.sql
DECLARE
V_DAY1 VARCHAR2(200) ;
V_DAY2 VARCHAR2(200) ;
RETVAL VARCHAR2(200) ;
BEGIN
V_DAY1 := '20230101';
V_DAY2 := '20230301';
RETVAL := TEST.GET_DAYS(V_DAY1, V_DAY2) ;
DBMS_OUTPUT.PUT_LINE('RetVal=" || RETVAL) ;
DBMS_OUTPUT.PUT_LINE("') ;
DBMS_OUTPUT.PUT_LINE('V_DAY1 = ' || V_DAY1) ;
DBMS_OUTPUT.PUT_LINE('V_DAY2 = ' || V_DAY2) ;
COMMIT;
END;
▣ 결과 화면
RetVal = 60
V_DAY1 = 20230101
V_DAY2 = 20230301