各位大虾:
我需要在一张表里把用户信息读出来,然后根据用户号分别计算他们的酬金。酬金计算已经在一个函数(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;我这样通过游标循环来达到目的,这样效率不是很高,特别在读出纪录很多的情况下。
请问:这里不用游标还能用什么来提高效率??先谢了
我需要在一张表里把用户信息读出来,然后根据用户号分别计算他们的酬金。酬金计算已经在一个函数(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;我这样通过游标循环来达到目的,这样效率不是很高,特别在读出纪录很多的情况下。
请问:这里不用游标还能用什么来提高效率??先谢了
我需要把t_user表里满足条件(state in (3,4))的用户逐一求酬金,如果我不用游标来循环读,我还可以通过什么方式来达到目的?
是不是这个意思
酬金不是t_user的一个字段,而是需要计算每个人的bonus,相加后返回给函数
酬金计算的函数已经有了
我的意思:对于这样需要逐个读出纪录的需求有没有效率高些的方法?
into xxx
from t_user
where state in (3,4);
cursor的效率确实不高吗?
请问这样可以提高效率吗?