2016-02-02 192 views
0

我使用LISTAGG來連接我的字符串,這裏有一個問題,我面對的 - 而串聯則拋出下面的錯誤LISTAGG的Oracle 11g

「字符串連接的結果是太長 字符串連接的結果是超過。最大尺寸。 確保結果小於最大尺寸。「

我想要的連接字符串是超過4000個字符...

回答

0

如果你想要得到的結果是4000多字符和你正在使用11g,你不能使用listagglistagg返回一個varchar2,並且SQL中的varchar2限制爲4000字節(在12.1中可以增加到32k,而我的猜測是listagg可以返回一個長度最大爲32k的字符串,但我沒有嘗試過) 。

在11g中,如果希望結果超過4000字節,則必須使用clob。我所知道的最好辦法是從Tim Hall的Oracle字符串聚合技術頁面獲取user-defined aggregate function,並修改它以使用並返回clob而不是varchar2。儘管代碼很容易閱讀,即使您不是德語說話者,也可以在this German language site上找到基於CLOB的實現的一個示例。