[Oracle] 오라클


이것은 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