oracle聚合函数wmsys.wm_concat超长问题记录

来源:互联网 发布:淘宝新规代购 编辑:程序博客网 时间:2024/09/21 06:37

今天在项目中执行sql时遇到一个问题,执行

select wmsys.wm_concat(p_codes) codes from t_rel where id='123'

这样一个语句时报这样的错误:

numeric or value error: character string buffer too small(数字或值错误:字符缓冲区太小)

经查明,wm_concat函数拼接的字符串不能超过4000字节,否则会报错。


  • 解决方案:

    更改sql如下:

select XMLAGG(XMLELEMENT(E, p_codes || ',')).EXTRACT('//text()').getclobval() codes from t_rel where vote_id='123'

注意,该sql拼接字符串末尾会多一个,符号,可用substr函数或在后台截掉。

0 0