/*VER2 월말기준으로 프로시저 돌리는 달력구문*/
WITH CALENDR AS (
             SELECT
               'P_HR_D_HR_EMP_YM' AS PGM_NM
            , TO_CHAR (FIRST_DAY + LEVEL - 1, 'D') DAYS -- 요일(숫자)
            , TO_CHAR (FIRST_DAY + LEVEL - 1, 'MMDD') TODAY -- 해당일자
            , TO_CHAR (FIRST_DAY + LEVEL - 1, 'DD') DAY -- 일자
            , TO_CHAR (FIRST_DAY + LEVEL - 1, 'YYYYMMDD') TODAY_STR -- 해당일자str
            , TO_CHAR(TO_DATE(TO_CHAR (FIRST_DAY + LEVEL - 1, 'YYYYMMDD'), 'YYYYMMDD')-1, 'YYYYMMDD') AS YESTERDAY_STR -- 해당일자str
            , TO_CHAR(FIRST_DAY + LEVEL - 1,'IW') WEEK_NUM -- 주차수
            , TO_CHAR(FIRST_DAY + LEVEL - 1,'DY') DAYS_K -- 요일(한글)
        FROM    (SELECT TRUNC(TO_DATE('20200101'), 'MM') FIRST_DAY FROM DUAL)
        WHERE TO_CHAR (FIRST_DAY + LEVEL - 1, 'DD')='01'
        CONNECT BY TO_DATE('20200101') + LEVEL + 1 <= TRUNC(LAST_DAY(TO_DATE('20230301', 'YYYYMMDD')))
    )  SELECT
   'CALL '||PGM_NM||'('||chr(39)||TODAY_STR||CHR(39)||', '||CHR(39)||TODAY_STR||CHR(39)||', '||CHR(39)||'M'||CHR(39)||');' AS CALL_PROC_TODAY
    , 'CALL '||PGM_NM||'('||chr(39)||YESTERDAY_STR||CHR(39)||', '||CHR(39)||YESTERDAY_STR||CHR(39)||', '||CHR(39)||'M'||CHR(39)||');' AS CALL_PROC_YESTERDAY
FROM CALENDR;
반응형
Posted by cocon