to_clob()
funkcja przyjmuje wartość znakową, więc masz niejawną konwersję z XMLType
zwrócone przez XMLElement()
do varchar2
; gdy długość XML przekroczy 4k (ponieważ jesteś w kontekście SQL), otrzymasz ten błąd.
Możesz użyć XMLType
funkcja getCLobVal()
zamiast tego:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Więc zewnętrzne wywołanie to_clob()
został usunięty i zastąpiony wywołaniem XMLElement().getClobVal()
.Zweryfikowano również z XML większym niż 32k.