Oracle 按日期循环

DECLARE  
       V_IMPORT_DATE DATE;
       V_BUSI_DATE DATE;
       OUT_RET  NUMBER; -- 0-成功, 其他失败
       OUT_RET_MSG VARCHAR2(1000);
       PARAM PROC_PARAM_TYPE;
       V_MONTH_BEGIN DATE;
       V_MONTH_END DATE;
BEGIN  
      
       /*
         按月循环每天
        拉链表数据需根据业务发生日期mis_date按天跑批生成数据       
       
       */  
        
        V_MONTH_END   := DATE'2018-04-30';
        V_MONTH_BEGIN := TRUNC(V_MONTH_END,'MM');
        V_BUSI_DATE   := V_MONTH_BEGIN;
        
        WHILE(V_BUSI_DATE <= V_MONTH_END) 
        LOOP 
             
            PARAM:=PROC_PARAM_TYPE(0,'',V_BUSI_DATE,NULL,'');              
            PKG_ODS_IF_ZIPLINK_TABLE.PROC_IF_ZIP_DRI_RCP_EYA_D(PARAM);
            
            --DBMS_OUTPUT.PUT_LINE(V_BUSI_DATE);
            V_BUSI_DATE := V_BUSI_DATE + 1;   
            
         END LOOP;  
END;
/

  

DECLARE         V_IMPORT_DATE DATE;       V_BUSI_DATE DATE;       OUT_RET  NUMBER; -- 0-成功, 其他失败       OUT_RET_MSG VARCHAR2(1000);       PARAM PROC_PARAM_TYPE;       V_MONTH_BEGIN DATE;       V_MONTH_END DATE;BEGIN               /*         按月循环每天        拉链表数据需根据业务发生日期mis_date按天跑批生成数据                     */                  V_MONTH_END   := DATE'2018-04-30';        V_MONTH_BEGIN := TRUNC(V_MONTH_END,'MM');        V_BUSI_DATE   := V_MONTH_BEGIN;                WHILE(V_BUSI_DATE <= V_MONTH_END)         LOOP                          PARAM:=PROC_PARAM_TYPE(0,'',V_BUSI_DATE,NULL,'');                          PKG_ODS_IF_ZIPLINK_TABLE.PROC_IF_ZIP_DRI_RCP_EYA_D(PARAM);                        --DBMS_OUTPUT.PUT_LINE(V_BUSI_DATE);            V_BUSI_DATE := V_BUSI_DATE + 1;                        END LOOP;  END;/

posted @ 2018-10-12 11:03  Ayumie  阅读(6151)  评论(0编辑  收藏  举报