将循环处更改一下: LOOP fetch cur_lzkh into idstr; EXIT WHEN cur_lzkh%NOTFOUND; Result := Result || idstr || ','; END LOOP;
你这很多错了,改良下create or replace function get_lzkh_kfjfxq(sqls in varchar2, kfrq in varchar2) RETURN varchar2 is Result varchar2(4000); cursor cur_lzkh is select id from lzkh_kfjfxq where kfjfrq || jgm || kfjfms = sqls and kfjfrq = kfrq; idstr cur_lzkh%rowtype; begin Result := ''; open cur_lzkh; loop fetch cur_lzkh into idstr; exit when cur_lzkh%notfound; Result := Result || idstr.id || ','; end loop; Result := substr(Result, 1, LENGTH(Result) - 1); close cur_lzkh; RETURN(Result); end get_lzkh_kfjfxq;另外 我觉得wm_concat函数就能实现你的要求了吧
LOOP
fetch cur_lzkh into idstr;
EXIT WHEN cur_lzkh%NOTFOUND;
Result := Result || idstr || ',';
END LOOP;
kfrq in varchar2)
RETURN varchar2 is
Result varchar2(4000);
cursor cur_lzkh is
select id
from lzkh_kfjfxq
where kfjfrq || jgm || kfjfms = sqls
and kfjfrq = kfrq;
idstr cur_lzkh%rowtype;
begin
Result := '';
open cur_lzkh;
loop
fetch cur_lzkh into idstr;
exit when cur_lzkh%notfound;
Result := Result || idstr.id || ',';
end loop;
Result := substr(Result, 1, LENGTH(Result) - 1);
close cur_lzkh;
RETURN(Result);
end get_lzkh_kfjfxq;另外 我觉得wm_concat函数就能实现你的要求了吧