to_clob()
funktionen tar ett teckenvärde, så du har en implicit konvertering från XMLType
returneras av XMLElement()
till varchar2
; när längden på XML överstiger 4k (eftersom du är i ett SQL-sammanhang) får du det felet.
Du kan använda XMLType
funktion getCLobVal()
istället:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Så det yttre anropet till to_clob()
har tagits bort och ersatts med ett anrop till XMLElement().getClobVal()
.Verifierad med XML större än 32k också.