存储过程里这样的循环读取不用游标还能用什么?!
各位大虾:
我需要在一张表里把用户信息读出来,然后根据用户号分别计算他们的酬金。酬金计算已经在一个函数(f_count_bonus)实现了。我的存储过程是这么处理的:
open mc for
'select user_id from t_user where state in (3,4) ';
loop
fetch mc into v_uid;
exit when mc%NOTFOUND;
bonus:=bonus+f_count_bonus(v_uid);
end loop;
close mc;
我这样通过游标循环来达到目的,这样效率不是很高,特别在读出纪录很多的情况下。
请问:这里不用游标还能用什么来提高效率??
先谢了
------解决方案--------------------update t_user set salary = salary + f_count_bonus(user_id ) where state in (3,4);
------解决方案--------------------这个?
select sum(f_count_bonus(user_id ))
into xxx
from t_user
where state in (3,4);