to_clob()
функцията приема символна стойност, така че имате имплицитно преобразуване от XMLType
върнат от XMLElement()
в varchar2
; след като дължината на XML превиши 4k (тъй като сте в SQL контекст), ще получите тази грешка.
Можете да използвате XMLType
функция getCLobVal()
вместо това:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Така че външното извикване на to_clob()
е премахнат и заменен с извикване на XMLElement().getClobVal()
.Проверен и с XML, по-голям от 32k.