聚合函数 LISTAGG <ORA-01489: 字符串连接的结果过长>

拼接数据时,因为包含太多重复数据,导致拼接字符过长

...
LISTAGG ( aaa , ',') WITHIN GROUP(ORDER BY aaa)
...

解决方案,建立临时表,将数据 先去重,再聚合。(或者在子查询中过滤)

...
WITH temp1 AS (
SELECT DISTINCT aaa, t.id
FROM t
)
...

另外可以使用 XMLAGG()函数

...
xmlagg(xmlparse(content aaa ||',') order by aaa).getclobval()
...

其中 WM_CONCAT() ,在11G和12C版本中,这个函数已经失效,所以不推荐使用

 

posted @ 2024-01-18 19:36  gz狗柱  阅读(114)  评论(0)    收藏  举报