关于FOR循环的问题,

[复制链接]
查看11 | 回复6 | 2010-4-22 09:18:38 | 显示全部楼层 |阅读模式
for p1 in (select acc_nbr from zhj_0821_qqzl ) loop
v_acc_nbr:=p1.acc_nbr;
select serv_id into v_serv_id from tb_cm_serv where acc_nbr=v_acc_nbr and state='B0A' and rownum=1;
[B] for p2 in (select msinfo_id fromtb_cm_msobject where obj_id=v_serv_id and state='B0A') loop[/B]
select disc_id into v_disc_id from tb_cm_msinfo where msinfo_id=p2.msinfo_id;
select disc_name into v_disc_name from tb_ms_disc_info where disc_id= v_disc_id;
v_disc_name_all:=v_disc_name_all||' , '||v_disc_name;
end loop;
update zhj_0821_qqzl set disc_name = v_disc_name_all where acc_nbr=v_acc_nbr;
v_disc_name_all:='';
[B] for p2 in (select msinfo_id fromtb_cm_msobject where obj_id=v_serv_id and state='B0A') loop[/B] 在执行时占用很多时间,请问大家,有什么好的办法没有?
回复

使用道具 举报

千问 | 2010-4-22 09:18:38 | 显示全部楼层
你要看你的开销在哪里?
从以上看不出来什么
回复

使用道具 举报

千问 | 2010-4-22 09:18:38 | 显示全部楼层
多大数据量?
回复

使用道具 举报

千问 | 2010-4-22 09:18:38 | 显示全部楼层
换成使用绑定变量?
回复

使用道具 举报

千问 | 2010-4-22 09:18:38 | 显示全部楼层
能详细点吗
回复

使用道具 举报

千问 | 2010-4-22 09:18:38 | 显示全部楼层
你这2个for循环能否用表连接??
回复

使用道具 举报

千问 | 2010-4-22 09:18:38 | 显示全部楼层
里面的表都是相关联的,仔细看的话会发现可以写成一个SQL的
但是后面几个表的数据都是百万级的,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行