impdp匯入XMLTYPE欄位型別的資料出現亂碼的問題

尛樣兒發表於2012-07-18

        今天一個客戶打電話說,他們的資料庫很多表存在XMLTYPE的欄位,在做資料遷移的時候,使用expdp將資料匯出,之後匯入另一個資料庫即出現亂碼,使用了包括修改NLS_LANG等很多方法還是亂碼。即使在單機環境下做測試,從本地匯出再倒入本地也是亂碼。

一.資料測試。
        接到這個問題之後,我也在本機做了測試,建立表的程式碼如下:
CREATE TABLE TEST.T_XML 
XML_TEST XMLTYPE 
XMLTYPE XML_TEST STORE AS BINARY XML; 
        透過PL/SQL工具向這個表中載入一個包含中文的標準XML檔案。
        使用exp匯出報不支援該型別,使用expdp順利匯出,對現有的表進行重新命名,之後再次匯入,檢視該欄位資料即是亂碼。

二.問題解決。
        google搜尋了一些資料,發現是由expdp引數問題導致的,執行以下的命令匯出資料庫資料:
C:\Users\LIUBINGLIN>expdp 's/s as sysdba' directory=dump_dir dumpfile=test2.dmp
schemas=test  DATA_OPTIONS=XML_CLOBS
匯出的時候增加紅色加粗的引數。
執行以下的命令匯入資料:
C:\Users\LIUBINGLIN>impdp 's/s as sysdba' directory=dump_dir dumpfile=test2.dmp
schemas=test

匯入之後資料再沒有亂碼。

執行expdp help=y檢視DATA_OPTIONS選項值。
DATA_OPTIONS
資料層選項標記。
有效的關鍵字值為: XML_CLOBS。

參考資料:

--end--


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-735906/,如需轉載,請註明出處,否則將追究法律責任。

相關文章