oracle 插入每年每天数据

 

create or replace procedure PROC_P_ABC is

v_sumday number :=0;
i number :=0;
v_calendar_date number :=null;
v_day number :=null;

begin
 

  select to_date(TO_CHAR(SYSDATE,'RRRR'),'yyyy') - to_date(TO_CHAR(SYSDATE,'RRRR')-1,'yyyy') INTO v_sumday  from dual;

  while i < v_sumday LOOP

    --begin
    SELECT TO_CHAR(TRUNC(SYSDATE, 'y') + i, 'YYYYMMDD') into v_calendar_date FROM DUAL;
    SELECT TO_CHAR(TO_DATE(TRUNC(SYSDATE, 'y') + i , 'yyyy-mm-dd'),'d') into v_day from dual;
    
    IF v_day = 4 THEN
      insert into t_p_scf_book_calendar
        (calendar_date, weekly_flag, daily_flag,flow_code_weekly)
      values
        (v_calendar_date, 1, 8, v_calendar_date || 'W03');

    ELSE
      insert into t_p_scf_book_calendar
        (calendar_date, weekly_flag, daily_flag)
      values
        (v_calendar_date, 0, 8);
        
    END IF;
    
    i:= i + 1;

    --end;

  end LOOP;

end PROC_P_ABC;

 

posted @ 2017-12-29 20:54  未来的羁绊  阅读(340)  评论(0编辑  收藏  举报