LISTAGG Oracle 11g

时间:2016-02-02 05:07:38

标签: oracle11g listagg

我正在使用LISTAGG连接我的字符串,这里面临一个问题 - 连接它时会抛出以下错误

"字符串连接的结果太长。  字符串连接结果超过最大大小。  确保结果小于最大大小。 "

我希望连接的字符串超过4000个字符......

1 个答案:

答案 0 :(得分:0)

如果您希望结果超过4000个字符且使用11g,则无法使用listagglistagg返回varchar2,SQL中的varchar2限制为4000字节(在12.1中可以增加到32k,我的猜测是listagg可以返回长度达32k的字符串,但我没有尝试过。)

在11g中,如果您希望结果长于4000个字节,则必须使用clob。我知道这样做的最好方法是从Tim Hall的Oracle字符串聚合技术页面上获取user-defined aggregate function并修改它以使用并返回clob而不是varchar2this German language site上提供了基于CLOB的实现的一个示例,尽管即使您不是德语,代码也很容易阅读。