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.