Вот описание и действие для ошибки:
ORA-22813 : значение операнда превышает системные ограничения.
Причина : Значение объекта или коллекции было слишком большим.Размер значения может превышать 30 КБ в контексте SORT, или размер может быть слишком большим для доступной памяти.
Действие : выберите другое значение и повторите операцию.
НО, мы можем пропустить те записи, которые после конкатенации будут больше 30К.Значит Мы можем показать «ОШИБКА В КОНКАТЕНЦИИ» вместо фактической конкатенации, поскольку это все равно невозможно.
Попробуйте выполнить следующее.Это должно работать для вас.
SELECT
ID,
CASE
WHEN SUM((DBMS_LOB.GETLENGTH("DESCRIPTION"))) / 1024 < 30
THEN
RTRIM(XMLAGG(XMLELEMENT(E, DESCRIPTION, CHR(10)
|| CHR(10)).EXTRACT('//text()') ORDER BY
ROWID
).GETCLOBVAL(), CHR(10)
|| CHR(10))
ELSE TO_CLOB('ERROR IN CONCATENATION')
END AS DESCRIPTION2
FROM
TABLEA
GROUP BY
ID;
Это обходной путь с ограниченной функциональностью.
Опубликовал ответ, учитывая, что он может быть полезен для вас.
Cheers !!