Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-19011:buffer de string de caracteres muito pequeno


O to_clob() função recebe um valor de caractere, então você tem uma conversão implícita do XMLType retornado por XMLElement() em varchar2; quando o comprimento do XML exceder 4k (já que você está em um contexto SQL), você receberá esse erro.

Você pode usar o XMLType função getCLobVal() em vez de:
    SELECT XMLElement("DEMANDS",
                XMLAgg(XMLElement("Demand"
                            ,XMLElement( "DemandId",dmnd_id)
                        ,XMLElement( "CreatedBy",CREATED_BY)
...
    ,XMLElement("Comments",COMMENTS)
                       ))).getClobVal()
    into OUT_CLOB
    ...

Então a chamada externa para to_clob() foi removido e substituído por uma chamada para XMLElement().getClobVal() .Verificado com XML maior que 32k também.