现有一表A,结构如下:
BILL_PERIOD   BILLING_FREQUENCY  PPDD_DATE  STATEMENT_DATE  PREP_DELAY  PREP_DATE
M01 3 2018-11-5 2018-10-1 0 2018-10-1
M01 3 2018-12-5 2018-11-1 0 2018-11-1
M01 3 2019-1-5 2018-12-1 0 2018-12-1
求一存储过程,不断往此表插入记录,当PREP_DATE='2030-12-1'停止。注:PREP_DELAY =0,STATEMENT_DATE=PREP_DATE,PPDD_DATE=PREP_DATE+35天
我是一个新手,请各位大侠帮忙想想,小弟不甚感激

解决方案 »

  1.   

    create or replace procedure p
    is
       v date := to_date('2018-10-01','yyyy-mm-dd');begin
       while (v < to_date('2030-12-01','yyyy-mm-dd') ) loop
          insert into a values('MO1',3, v+35,v,0,v);
          v := add_months(v,1);
       end loop;
       dbms_output.put_line('done');
    end p;
    /
      

  2.   

    来条sqlinsert into a
      select 'M01',3,add_months(date'2018-12-1'+35,rownum),
        add_months(date'2018-12-1',rownum),0,add_months(date'2018-12-1',rownum)
      from dual 
      connect by rownum<=months_between(date'2030-12-1',date'2018-12-1')
      

  3.   

    长见识了
    还以为CONNECT BY只能在START WITH...CONNECT BY PRIOR中使用