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.