to_clob()
function mengambil nilai karakter, jadi Anda memiliki konversi implisit dari XMLType
dikembalikan oleh XMLElement()
ke varchar2
; setelah panjang XML melebihi 4k (karena Anda berada dalam konteks SQL), Anda akan mendapatkan kesalahan itu.
Anda dapat menggunakan XMLType
fungsi getCLobVal()
sebagai gantinya:
SELECT XMLElement("DEMANDS",
XMLAgg(XMLElement("Demand"
,XMLElement( "DemandId",dmnd_id)
,XMLElement( "CreatedBy",CREATED_BY)
...
,XMLElement("Comments",COMMENTS)
))).getClobVal()
into OUT_CLOB
...
Jadi panggilan luar ke to_clob()
telah dihapus, dan diganti dengan panggilan ke XMLElement().getClobVal()
.Terverifikasi dengan XML yang lebih besar dari 32k juga.