这是我的过程 ,传三参数,说是执行成功了就是表中无插入数据,郁闷。求高手指点一二 感激不尽
create or replace procedure qmys_out(qmysnum varchar2,
rtime date,
qtime date
) as
cInts number;
a number;
begin
a:=months_between((to_date(to_char(qtime,'yyyymm'),'yyyymm')),(to_date(to_char(rtime,'yyyymm'),'yyyymm')));
cInts:=0;
IF rtime>=to_date(to_number(to_char(rtime,'yyyymm')||26),'yyyymmdd')
then cInts:= cInts+1;
return;
end if;
IF rtime>=to_date(to_number(to_char(qtime,'yyyymm')||26),'yyyymmdd')
then a:= a+1;
return;
end if;
IF rtime<to_date(to_number(to_char(rtime,'yyyymm')||26),'yyyymmdd')
then insert into t_c_qmysz(zys_ysnum, zys_num,zys_days) values (qmysnum,
to_char(rtime,'yyyymm'),(to_date((to_char(rtime,'yyyymm')||25),'yyyymmdd')-rtime));
cInts:= cInts+1;
return;
end if;
loop
if cInts=a
then insert into t_c_qmysz(zys_ysnum, zys_num, zys_days) values (qmysnum,
to_char( add_months(rtime,cInts),'yyyymm'),(qtime-(add_months(to_date((to_char(rtime,'yyyymm')||26),'yyyymmdd'),cInts-1))+1));
cInts:= cInts+1;
return;
end if;
insert into t_c_qmysz(zys_ysnum, zys_num, zys_days) values (qmysnum,
to_char( add_months(rtime,cInts),'yyyymm'),(add_months(to_date((to_char(rtime,'yyyymm')||25),'yyyymmdd'),cInts))-(add_months(to_date((to_char(rtime,'yyyymm')||26),'yyyymmdd'),cInts-1))+1);
cInts:= cInts+1;
if cInts>a
then exit;
end if;
end loop;
end qmys_out;
create or replace procedure qmys_out(qmysnum varchar2,
rtime date,
qtime date
) as
cInts number;
a number;
begin
a:=months_between((to_date(to_char(qtime,'yyyymm'),'yyyymm')),(to_date(to_char(rtime,'yyyymm'),'yyyymm')));
cInts:=0;
IF rtime>=to_date(to_number(to_char(rtime,'yyyymm')||26),'yyyymmdd')
then cInts:= cInts+1;
return;
end if;
IF rtime>=to_date(to_number(to_char(qtime,'yyyymm')||26),'yyyymmdd')
then a:= a+1;
return;
end if;
IF rtime<to_date(to_number(to_char(rtime,'yyyymm')||26),'yyyymmdd')
then insert into t_c_qmysz(zys_ysnum, zys_num,zys_days) values (qmysnum,
to_char(rtime,'yyyymm'),(to_date((to_char(rtime,'yyyymm')||25),'yyyymmdd')-rtime));
cInts:= cInts+1;
return;
end if;
loop
if cInts=a
then insert into t_c_qmysz(zys_ysnum, zys_num, zys_days) values (qmysnum,
to_char( add_months(rtime,cInts),'yyyymm'),(qtime-(add_months(to_date((to_char(rtime,'yyyymm')||26),'yyyymmdd'),cInts-1))+1));
cInts:= cInts+1;
return;
end if;
insert into t_c_qmysz(zys_ysnum, zys_num, zys_days) values (qmysnum,
to_char( add_months(rtime,cInts),'yyyymm'),(add_months(to_date((to_char(rtime,'yyyymm')||25),'yyyymmdd'),cInts))-(add_months(to_date((to_char(rtime,'yyyymm')||26),'yyyymmdd'),cInts-1))+1);
cInts:= cInts+1;
if cInts>a
then exit;
end if;
end loop;
end qmys_out;
检查一下是否是这个原因
months_between 日期加/ 好了 哈哈 谢谢各位 高手 哈哈