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.