存储过程执行不结束

supperbeakmania 2012-04-13 03:07:25
写了一段存储过程,用PLSQL test此存储过程时,程序一直不结束。

程序开始是一些查询,最后有一个insert语句,最终插到表中的数据应该是10条件记录。

程序一直在执行也不结束,去表里查数据,数据其实已经插入完毕了。

不知道是什么情况,不知道哪位朋友遇到过这种问题,劳驾解释解释,谢谢了!!!
...全文
728 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssqtjffcu 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
SQL code

create or replace procedure abc is

TYPE pv_array IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
web_pv pv_array;
wap_pv pv_array;
type type_array is varray(9) of varchar(10);
……
[/Quote]
你的insert语句没加commit,结束不了,会不会是网络断了。。。看过程好像没什么问题。。
supperbeakmania 2012-04-13
  • 打赏
  • 举报
回复

create or replace procedure abc is

TYPE pv_array IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
web_pv pv_array;
wap_pv pv_array;
type type_array is varray(9) of varchar(10);
var_array type_array:=type_array('220100','220200','220300','220400','220500','220600','220700','220800','222400');
test int;
begin

for a in 1..var_array.count loop

select sum(round(webpvpercent*webpv)),
sum(round(wappvpercent*wappv))
into
web_pv(var_array(a)), wap_pv(var_array(a))
from t_visit_pvpercent a
join
(
select substr(visittime,1,8) as days,
sum(case when portaltype='0' then 1 else 0 end) as webpv,
sum(case when portaltype='1' then 1 else 0 end) as wappv
from t_visit_source
where visittime like '201203%' and restype='9' and userareacode is null
group by substr(visittime,1,8)
) b on a.datetime=b.days
where datetime like '201203%' and userareacode=var_array(a);

insert into ccc values (var_array(a),web_pv(var_array(a)),wap_pv(var_array(a));

end loop;
exception
when others then
null;
end abc;



循环里的INSERT最终会插入9条记录,表中确实已经插入9条记录。

用PLSQL里的,TEST测试执行这个存储过程,采用单步执行方式,最后执行到END时,程序就不动了。
我心飞翔 2012-04-13
  • 打赏
  • 举报
回复
怎么知道程序一直在执行,而不结束呢?
把存储过程的代码,和存储过程中用到的表的建表语句也贴一下,可以实际运行一下看看。

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧