Oracle LISTAGG和XMLAGG函数

分组中同一字段用逗号(,)连接,下面是一个LISTAGG函数例子:

LISTAGG(BSO.ID, ',') WITHIN GROUP (ORDER BY BSO.ID)  

规范写法 : LISTAGG(字段, 连接符) WITHIN GROUP (ORDER BY 字段)  

通常情况下,LISTAGG是满足需要的,LISTAGG 返回的是一个varchar2类型的数据,最大字节长度为4000。

所以,在实际开发中,我们可能会遇到一个问题,连接长度过长。在这个时候,我们需要将LISTAGG函数改成XMLAGG函数。XMLAGG返回的类型为CLOB,最大字节长度为32767。

下面是XMLAGG函数的例子:

XMLAGG(XMLPARSE(CONTENT BSO.ID || ',' WELLFORMED) ORDER BY BSO.ID).GETCLOBVAL()

规划写法: XMLAGG(XMLPARSE(CONTENT 字段 || 字符串 WELLFORMED) ORDER BY 字段).GETCLOBVAL()

 

你可能感兴趣的:(问题记录)