sql >> Databasteknik >  >> RDS >> Oracle

ORA-19011:Teckensträngsbuffert för liten

to_clob() funktionen tar ett teckenvärde, så du har en implicit konvertering från XMLType returneras av XMLElement() till varchar2; när längden på XML överstiger 4k (eftersom du är i ett SQL-sammanhang) får du det felet.

Du kan använda XMLType funktion getCLobVal() istället:

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

Så det yttre anropet till to_clob() har tagits bort och ersatts med ett anrop till XMLElement().getClobVal() .Verifierad med XML större än 32k också.




  1. Välj kolumn efter alias i MySQL

  2. 20 tips:Förbered din databas för Black Friday och Cyber ​​Monday

  3. Vilken av dessa två databasinställningar ska jag välja?

  4. mysql Hur man hittar skillnaden mellan två rader i samma tabell och listar de omatchade posterna? mysql hitta oöverträffade rader i en tabell