sql >> Databáze >  >> RDS >> Oracle

ORA-19011:Vyrovnávací paměť znakového řetězce je příliš malá

to_clob() funkce přebírá hodnotu znaku, takže máte implicitní převod z XMLType vrácené XMLElement() do varchar2; jakmile délka XML překročí 4k (protože jste v kontextu SQL), dostanete tuto chybu.

Můžete použít XMLType funkce getCLobVal() místo toho:

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

Tedy vnější volání to_clob() byl odstraněn a nahrazen voláním XMLElement().getClobVal() .Ověřeno také s XML větším než 32 kB.




  1. Příkazy SQL

  2. Získání zprávy SQLEXCEPTION v procedurách MySQL

  3. MySQL Workbench přeruší připojení, když je nečinný

  4. Opačné souřadnice ve sloupci polygonu PostgreSQL