sql >> Database >  >> RDS >> Oracle

ORA-19011:Tekenreeksbuffer te klein

De to_clob() functie heeft een tekenwaarde, dus je hebt een impliciete conversie van het XMLType geretourneerd door XMLElement() in varchar2; zodra de lengte van de XML 4k overschrijdt (omdat je in een SQL-context zit), krijg je die fout.

U kunt het XMLType . gebruiken functie getCLobVal() in plaats daarvan:

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

Dus de buitenste aanroep naar to_clob() is verwijderd en vervangen door een aanroep van XMLElement().getClobVal() .Geverifieerd met XML groter dan 32k ook.




  1. Verzamel recursieve JSON-sleutels in Postgres

  2. Waarom werkt dit soort in Solr niet?

  3. SqlPlus-queryprobleem (pakketspecificatie en hoofdtekst)

  4. Heeft het JDBC Postgres-stuurprogramma een manier om de client_encoding in te stellen om verbinding te maken met de database?