先上代码: create or replace procedure USERRATELIST is
TYPE type_cur IS REF CURSOR; --定义游标
cur type_cur; --返回的数据集
V_Version varchar2(38); --版本编号
V_TypeID varchar2(38); --类型编号
V_detail varchar2(1000); --条件编号
begin
open cur for
select c.numtype, c.typeguid, c.condition from CONDITIONTYPE c;
loop
fetch cur
into V_Version, V_TypeID, V_detail;
dbms_output.put_line(V_detail);
exit when cur%Notfound;
insert into RATEUSERTABLE
(ID,
CUSTOMERGUID,
NUMTYPE,
TYPEGUID,
RATENUM,
ISUSEDATE,
CREATEDATE,
CREATER)
(select f_createguid,
u.customerguid,
V_Version,
V_TypeID,
'' rate,
trunc(sysdate) isusedate,
sysdate,
'system' creater
from USERPREFERETIALTABLE u
where u.ptype=V_detail group by u.customerguid );
commit;
end loop;
if cur%isopen then
close cur;
end if;
end USERRATELIST;CONDITIONTYPE 这个表里面有4条记录,但是在执行插入的时候,执行了5次,最后一条记录重复执行了2次(红色的输出结果显示最后一条记录输出了2次)?
在线等结果~!(以前这样写都没问题的)
TYPE type_cur IS REF CURSOR; --定义游标
cur type_cur; --返回的数据集
V_Version varchar2(38); --版本编号
V_TypeID varchar2(38); --类型编号
V_detail varchar2(1000); --条件编号
begin
open cur for
select c.numtype, c.typeguid, c.condition from CONDITIONTYPE c;
loop
fetch cur
into V_Version, V_TypeID, V_detail;
dbms_output.put_line(V_detail);
exit when cur%Notfound;
insert into RATEUSERTABLE
(ID,
CUSTOMERGUID,
NUMTYPE,
TYPEGUID,
RATENUM,
ISUSEDATE,
CREATEDATE,
CREATER)
(select f_createguid,
u.customerguid,
V_Version,
V_TypeID,
'' rate,
trunc(sysdate) isusedate,
sysdate,
'system' creater
from USERPREFERETIALTABLE u
where u.ptype=V_detail group by u.customerguid );
commit;
end loop;
if cur%isopen then
close cur;
end if;
end USERRATELIST;CONDITIONTYPE 这个表里面有4条记录,但是在执行插入的时候,执行了5次,最后一条记录重复执行了2次(红色的输出结果显示最后一条记录输出了2次)?
在线等结果~!(以前这样写都没问题的)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货