0
我使用LISTAGG來連接我的字符串,這裏有一個問題,我面對的 - 而串聯則拋出下面的錯誤LISTAGG的Oracle 11g
「字符串連接的結果是太長 字符串連接的結果是超過。最大尺寸。 確保結果小於最大尺寸。「
我想要的連接字符串是超過4000個字符...
我使用LISTAGG來連接我的字符串,這裏有一個問題,我面對的 - 而串聯則拋出下面的錯誤LISTAGG的Oracle 11g
「字符串連接的結果是太長 字符串連接的結果是超過。最大尺寸。 確保結果小於最大尺寸。「
我想要的連接字符串是超過4000個字符...
如果你想要得到的結果是4000多字符和你正在使用11g,你不能使用listagg
。 listagg
返回一個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的實現的一個示例。