解決 Oracle imp/exp 後資料庫欄位註解變亂碼的問題

System: linux, UTF8
Oracle NLS info: NLS_CHARACTERSET=AL32UTF8, NLS_LANGUAGE=AMERICAN

當我們要 exp(ort) 資料到其他資料庫, 然後imp(ort) 時會遇到很奇怪的狀況

表內的資料都是正常的中文, 但欄位的敘述是亂碼(一堆’?’)

找了一堆資料後的結論是, 該資料庫(表)的語系為 ”TRADITIONAL CHINESE_TAIWAN”.AL32UTF8

1
select userenv('language') from dual;

但是系統預設的是 “AMERICAN”.AL32UTF8

所以變成必須在 import 以及 export 時都先設定資料庫應該要使用的語系

1
export NLS_LANG="TRADITIONAL CHINESE_TAIWAN".AL32UTF8

這樣就可以啦

Leave a Reply

Your email address will not be published. Required fields are marked *