Le to_clob()
la fonction prend une valeur de caractère, vous avez donc une conversion implicite à partir du XMLType
renvoyé par XMLElement()
dans varchar2
; une fois que la longueur du XML dépasse 4k (puisque vous êtes dans un contexte SQL), vous obtiendrez cette erreur.
Vous pouvez utiliser le XMLType
fonction getCLobVal()
à la place :
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Ainsi, l'appel externe à to_clob()
a été supprimé et remplacé par un appel à XMLElement().getClobVal()
.Vérifié avec XML supérieur à 32k également.