由于listagg()方法有长度限制所以自定义了这个方法用来拓展,不用担心字符串长度问题。
此方法主要用来将一列数据以符号进行分隔,最终拼接成一个字符串变量。
使用此方法,把查询sql作为参数一,分割符号作为参数二。
调用结果: 张三,李四,王五
create or replace function listagg_func(sql_in in varchar2, symbol_in in varchar2)
return clob
is
v_result clob;
v_msg varchar2(500);
type temp is ref cursor;
cur_query temp;
begin
open cur_query for sql_in;
loop
fetch cur_query into v_msg;
exit when cur_query%notfound;
if cur_query%rowcount = 1 then
v_result := v_result || v_msg;
else
v_result := v_result || symbol_in || v_msg;
end if;
end loop;
close cur_query;
return v_result;
end;