Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-19011 :Tampon de chaîne de caractères trop petit

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.