1. 查看服務端的字符集
select * from V$NLS_PARAMETERS
Language_Territory.charset
2. 查看客戶端的字符集
regedit->LocalMachine->software->Oracle->Homex ->NLS_LANG
1. 如果預計系統未來需要支持多字符集,則在創建數據庫時候使用UTF8(例如選擇characterset爲AL32UTF8,national characterset爲UTF8):
SQL> select * from v$nls_parameters;
PARAMETER VALUE
-------------------- --------------------
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERS UTF8
如果預計系統未來僅支持簡體中文,則可以使用UTF8或者ZHS16GBK這樣的簡體中文字符集來創建數據庫
2. 要保證客戶端使用的字符集與客戶端的輸入輸出一致。例如如果要用sqlldr導入一個簡體中文編碼的文件,那麼需要先設置客戶端的字符集。這可以通過DOS的環境變量來達到
set NLS_LANG=.ZHS16GBK (這是一種簡寫的方式,注意=後面有一個點'.')
3. 客戶端字符集不一定是要和服務器端字符集一致。Oracle的客戶端會自動轉換。但是這種轉換必須是可行的。例如服務器端是UTF8,客戶端是ZHS16GBK就可以,因爲UTF8能夠描述的字符集是ZHS16GBK的全集。反過來,如果服務器端是US7ASCII客戶端是ZHS16GBK就不可以