我完全不熟悉Oracle的XDB,特別是使用它來從數據庫表中生成XML輸出,並且正在從9i(Oracle9i企業版版本9.2.0.5 .0 - 生產)到11g(Oracle數據庫11g企業版版本11.2.0.2.0 - 64位生產)。下面是這說明我有這個問題一個小的測試案例:在Oracle XDB中轉義控制字符
select xmlelement("test", test) from (select 'a' test from dual);
這工作,給我:
<test>a</test>
但是在11g中,如果我換「一」爲無效字符,例如作爲U + 0013,我得到以下錯誤:
ORA-31061: XDB error: special char to escaped char conversion failed.
在9i中同樣的事情也會獲得成功,並沒有錯誤。
很明顯,理想的答案是有一些驗證,以防止控制字符進入我想要轉換成XML的簡單字符數據,但不幸的是,這超出了我所做的範圍。
這是其他人經歷過的事情嗎?如果是這樣,是否可以對我的XML生成腳本進行簡單的更改,還是需要進行其他類型的清理?或者只是在罕見的情況下手動修復問題(這對我的需求來說是完全合理的選擇)。
非常感謝。