Oracle中的LISTAGG函數在將值連接成一個字符串時有一個默認的最大長度限制,即4000個字符。如果連接后的字符串超過了這個長度限制,會拋出ORA-01489錯誤。
要解決這個問題,可以通過使用LISTAGG函數的MAX_STRING_SIZE參數來增加最大長度限制。可以將MAX_STRING_SIZE設置為EXTENDED來將最大長度限制增加到32767個字符。
示例:
SELECT LISTAGG(column_name, ',') WITHIN GROUP (ORDER BY column_name)
FROM table_name
MAX_STRING_SIZE 32767;