3
我目前有非utf-8數據庫,但我需要用utf-8編碼生成XMLType變量。我有一個解決方法,但似乎有在Oracle錯誤,請訪問以下鏈接: https://forums.oracle.com/forums/thread.jspa?messageID=10238641如何更改XMLTYPE變量的字符集?
...和Oracle支持的bug:7698684
該bug將導致隨機
ORA-1482: unsupported character set
ORA-6512: at "SYS.XMLTYPE", line 107
首先我得到了帶有dbms_xmlgen包的XMLType。該XMLType使用DB字符集進行編碼。
爲了將其轉換爲UTF-8字符集我這樣做:
- 我轉換的XMLType變量BLOB使用NLS_CHARSET_ID getBlobVal方法變量( 'UTF8')作爲參數
- 我轉換BLOB使用XMLType構造函數方法將變量返回到XMLType,其中使用BLOB變量作爲第一個參數,並使用NLS_CHARSET_ID ('UTF8')作爲第二個參數。 這將導致隨機誤差:(
有誰知道這方面的任何替代解決方案?
l_xml := dbms_xmlgen.getXMLType(l_ctx);
l_xml_b := l_xml.getBlobVal(C_UTF8_CHARSET_ID);
l_xml := XMLType(l_xml_b, C_UTF8_CHARSET_ID);
你在哪裏可以找到['XMLType.getBlobVal()']的定義(http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/t_xml.htm#i1010715)?在文檔中它沒有被列爲參數 – 2012-03-28 15:17:14
至少它寫在這裏:http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb04cre.htm – 2012-03-28 15:40:27
它似乎是無證的(可能是文檔錯誤),但你說得對。你正在運行什麼版本? – 2012-03-28 16:16:54