Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-19011:Zeichenkettenpuffer zu klein

Der to_clob() Die Funktion nimmt einen Zeichenwert an, sodass Sie eine implizite Konvertierung von XMLType haben zurückgegeben von XMLElement() in varchar2; Sobald die Länge des XML-Codes 4k überschreitet (da Sie sich in einem SQL-Kontext befinden), erhalten Sie diesen Fehler.

Sie können den XMLType verwenden Funktion getCLobVal() stattdessen:

    SELECT XMLElement("DEMANDS",
                XMLAgg(XMLElement("Demand"
                            ,XMLElement( "DemandId",dmnd_id)
                        ,XMLElement( "CreatedBy",CREATED_BY)
...
    ,XMLElement("Comments",COMMENTS)
                       ))).getClobVal()
    into OUT_CLOB
    ...

Also der äußere Aufruf von to_clob() wurde entfernt und durch einen Aufruf von XMLElement().getClobVal() ersetzt .Verifiziert auch mit XML größer als 32k.