Il to_clob()
La funzione accetta un valore di carattere, quindi hai una conversione implicita da XMLType
restituito da XMLElement()
in varchar2
; una volta che la lunghezza dell'XML supera i 4k (dato che sei in un contesto SQL), riceverai quell'errore.
Puoi usare XMLType
funzione getCLobVal()
invece:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Quindi la chiamata esterna a to_clob()
è stato rimosso e sostituito con una chiamata a XMLElement().getClobVal()
.Verificato anche con XML maggiore di 32k.