一个丛oracle转写成mysql的自定义函数,在函数中根据条件递归调用本身的函数,运行造成10061错误,请大神指教!
create function f_get (p_id_1 varchar(50),rs_entrp_id varchar(50)) returns decimal
begin
declare ll_value decimal default 0;
declare invtor_id_now varchar(50) default '';
declare inv_per_now decimal(6,3) default 0;
DECLARE flag INT DEFAULT 0;
declare cur_inv cursor for
select a.invtor_id, sum(a.inv_per) inv_per
from ims_entrp_invest a
where a.entrp_id= p_id_1 and a.invtor_type='1'
group by a.invtor_id
order by a.invtor_id asc;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
open cur_inv;
WHILE flag != 1 DO
fetch cur_inv into invtor_id_now,inv_per_now;
IF flag != 1 THEN
if invtor_id_now = rs_entrp_id then
set ll_value = ll_value + inv_per_now / 100;
else
set ll_value = ll_value + (inv_per_now / 100) * f_get(invtor_id_now,rs_entrp_id);
end if;
END IF;
END WHILE;
CLOSE cur_inv;
return ll_value;
end;
相似问题