El to_clob()
La función toma un valor de carácter, por lo que tiene una conversión implícita del XMLType
devuelto por XMLElement()
en varchar2
; una vez que la longitud del XML supere los 4k (ya que está en un contexto SQL), obtendrá ese error.
Puede usar el XMLType
función getCLobVal()
en cambio:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Así que la llamada externa a to_clob()
se eliminó y se reemplazó con una llamada a XMLElement().getClobVal()
.Verificado con XML mayor a 32k también.