Oracle修改資料字符集

壹頁書發表於2014-01-12
今天一個同事遇到一個問題。
他們的資料庫是GBK編碼的,但是因為測試的原因,需要使用UTF8編碼。但是原來資料庫中的資料需要保留。

解決過程:
1.匯出源資料庫資料
2.修改編碼
3.將資料倒回

匯入和匯出的過程並不需要指定編碼,Oracle會根據資料庫的編碼自動轉換。
下面的實驗驗證資料庫會自動轉換編碼

1.建立實驗表和資料

2.檢視資料庫編碼(編碼為GBK)

3.指定編碼匯出資料,使用exp和expdp兩種方式。
GBK編碼:
exp方式

資料泵方式:

UTF8編碼:
exp方式

資料泵方式:


4.在Linux環境UTF8編碼下,匯入GBK匯出的檔案。
可以看到指定不同的NLS_LANG匯出的檔案,其實是不一樣的,說明NLS_LANG在匯出的時候,確實起到了作用,甚至是資料泵方式。

在UTF8編碼下,使用資料泵匯入GBK編碼匯出的檔案。

在UTF8環境下,使用imp匯入GBK編碼匯出的檔案。


檢視結果,沒有亂碼,說明Oracle可以自動判斷匯出檔案的編碼,並進行轉換:


參考:
http://www.eygle.com/special/NLS_CHARACTER_SET_04.htm

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

相關文章