to_clob() функцията приема символна стойност, така че имате имплицитно преобразуване от XMLType върнат от XMLElement() в varchar2; след като дължината на XML превиши 4k (тъй като сте в SQL контекст), ще получите тази грешка.
Можете да използвате XMLType функция getCLobVal() вместо това:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Така че външното извикване на to_clob() е премахнат и заменен с извикване на XMLElement().getClobVal() .Проверен и с XML, по-голям от 32k.