wmsys.wm_concat 和listagg 在函数实现字段合并的时候会有长度限制的问题,
如:ORA-22813: 操作数值超出系统的限制或者ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30
网上查了一下方案,用sys_connect_by_path也没有解决
后来国外有个文档说,可以用XML函数解决
select XMLAGG(XMLELEMENT(E, pid || ',')).EXTRACT('//text()').getclobval() as pids from T05_LOCKS where sid<3000
得到xmltype不好解析,可以先转成clob类型的,再用程序解析
select XMLAGG(XMLELEMENT(E, pid || ',')).EXTRACT('//text()').getclobval() as pids from T05_LOCKS where sid<3000
有个问题,最后会多一个逗号,要自己处理一下。
这样就的得到了没有字符大小限制的,可以直接拿来用的,用逗号拼接的字符串