to_clob() hàm nhận một giá trị ký tự, vì vậy bạn có một chuyển đổi ngầm định từ XMLType được trả về bởi XMLElement() thành varchar2; khi độ dài của XML vượt quá 4k (vì bạn đang ở trong ngữ cảnh SQL), bạn sẽ gặp lỗi đó.
Bạn có thể sử dụng XMLType function getCLobVal() thay vào đó:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Vì vậy, lệnh gọi bên ngoài tới to_clob() đã bị xóa và được thay thế bằng lệnh gọi tới XMLElement().getClobVal() .Xác minh với cả XML lớn hơn 32k.