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;