to_clob() funkcja przyjmuje wartość znakową, więc masz niejawną konwersję z XMLType zwrócone przez XMLElement() do varchar2; gdy długość XML przekroczy 4k (ponieważ jesteś w kontekście SQL), otrzymasz ten błąd.
Możesz użyć XMLType funkcja getCLobVal() zamiast tego:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Więc zewnętrzne wywołanie to_clob() został usunięty i zastąpiony wywołaniem XMLElement().getClobVal() .Zweryfikowano również z XML większym niż 32k.