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.