Der to_clob() Die Funktion nimmt einen Zeichenwert an, sodass Sie eine implizite Konvertierung von XMLType haben zurückgegeben von XMLElement() in varchar2; Sobald die Länge des XML-Codes 4k überschreitet (da Sie sich in einem SQL-Kontext befinden), erhalten Sie diesen Fehler.
Sie können den XMLType verwenden Funktion getCLobVal() stattdessen:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Also der äußere Aufruf von to_clob() wurde entfernt und durch einen Aufruf von XMLElement().getClobVal() ersetzt .Verifiziert auch mit XML größer als 32k.