--同天、同机构、同类型 扣分 只扣一条
create or replace function get_lzkh_kfjfxq(sqls in varchar2,kfrq in varchar2)
RETURN varchar2 IS
Result varchar2(4000);--返回值
idstr varchar2(80);--接受游标遍历的id值的变量
--创建游标(只包含id的游标)
cursor cur_lzkh is
select id
from lzkh_kfjfxq
where kfjfrq||jgm||kfjfms= sqls and kfjfrq=kfrq;--参数sqls 是 kfjfrq||jgm||kfjfms
begin
Result :='';
open cur_lzkh;
--idstr赋值
fetch cur_lzkh into idstr;
--遍历游标
WHILE cur_lzkh%FOUND LOOP
--拼接id
Result := Result || idstr || ',';
end loop;
--去掉最后一个逗号(,)
Result :=substr(Result,1,LENGTH(Result)-1);
close cur_lzkh;
RETURN (Result);
end get_lzkh_kfjfxq;
------解决方案--------------------
将循环处更改一下:
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,另外 我觉得wm_concat函数就能实现你的要求了吧
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;