to_clob() funkce přebírá hodnotu znaku, takže máte implicitní převod z XMLType vrácené XMLElement() do varchar2; jakmile délka XML překročí 4k (protože jste v kontextu SQL), dostanete tuto chybu.
Můžete použít XMLType funkce getCLobVal() místo toho:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Tedy vnější volání to_clob() byl odstraněn a nahrazen voláním XMLElement().getClobVal() .Ověřeno také s XML větším než 32 kB.