如果一个列的值太长,Oracle 12c中的listagg函数会输出NULL。这是什么原因以及解决方法是什么呢?
SQL> select length(algo_desc) from r2_temp where DECL = '305';
32759
ALGO_DESC非常长,例如1045、2339、2389……37364、58922、2389392。如果使用LISTAGG,则会返回NULL,如下所示:
SQL> select dump(listagg(algo_desc, ',') within group (order by algo_desc)) as algo_desc from r2_temp where DECL = '305';
NULL
列ALGO_DESC的最大大小为32767,在12c中它是扩展varchar2类型。
listagg()
函数的长度受varchar2()
/nvarchar2()
的限制,通常为 4000 个字符左右。 - Gordon Linoff