Oracle資料庫字符集問題

hooca發表於2015-04-28
今天為客戶處理了一個字符集有關的impdp匯入錯誤。匯入時出現如下報錯:
ORA-12899: value too large for column
長字元無法插入短列。

後來排查,發現邏輯備份是在ZHS16GBK字符集建立,而目標資料庫用的是AL32UTF8字符集。最後重建目標資料庫,使字符集一致才解決。

接下來我會看看能不能在建立邏輯備份時設定字符集來匹配目標資料庫,或能否改變目標資料庫的字符集。

查詢dump檔案字符集:
cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6

參考:
Oracle字符集問題小集
http://blog.chinaunix.net/uid-1710011-id-2830532.html

首選的字符集選項


資料庫字符集:ZHS16GBK
國家字符集:AL16UTF16

國家字符集只有AL16UTF16和UTF8兩個選項,前者從9i開始支援,比較新。
oracle使用者的環境變數NLS_LANG應與伺服器端一致:
[oracle@apr ~]$ echo $NLS_LANG
american_america.zhs16gbk

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

相關文章