NLS_LANG 參數(shù)組成
NLS_LANG參數(shù)由以下部分組成
NLS_LANG=<Language><Territory>.<Clients Characterset>
NLS_LANG各部分含義定義如下:
Language指定:
- Oracle消息使用的語(yǔ)言
- 日期中月份和日顯示
Territory指定: - 貨幣和數(shù)字格式
- 地區(qū)和計(jì)算星期及日期的習(xí)慣
Characterset控制客戶端應(yīng)用程序使用的字符集
通常設(shè)置或者等于客戶端(如windows)代碼頁(yè)
在Windows上查看當(dāng)前系統(tǒng)的代碼頁(yè)可以使用chcp命令:
C:\Users\Jowell>chcp
代碼頁(yè) | 國(guó)家(地區(qū))或語(yǔ)言 |
---|---|
437 | 美國(guó) |
708 | 阿拉伯文(ASMO 708) |
720 | 阿拉伯文(DOS) |
850 | 多語(yǔ)言(拉丁文 I) |
852 | 中歐(DOS) - 斯拉夫語(yǔ)(拉丁文 II) |
855 | 西里爾文(俄語(yǔ)) |
857 | 土耳其語(yǔ) |
860 | 葡萄牙語(yǔ) |
861 | 冰島語(yǔ) |
862 | 希伯來(lái)文(DOS) |
863 | 加拿大 - 法語(yǔ) |
865 | 日耳曼語(yǔ) |
866 | 俄語(yǔ) - 西里爾文(DOS) |
869 | 現(xiàn)代希臘語(yǔ) |
874 | 泰文(Windows) |
932 | 日文(Shift-JIS) |
936 | 中國(guó) - 簡(jiǎn)體中文(GB2312) |
949 | 韓文 |
950 | 繁體中文(Big5) |
1200 | Unicode |
1201 | Unicode (Big-Endian) |
1250 | 中歐(Windows) |
1251 | 西里爾文(Windows) |
1252 | 西歐(Windows) |
1253 | 希臘文(Windows) |
1254 | 土耳其文(Windows) |
1255 | 希伯來(lái)文(Windows) |
1256 | 阿拉伯文(Windows) |
1257 | 波羅的海文(Windows) |
1258 | 越南文(Windows) |
20866 | 西里爾文(KOI8-R) |
21866 | 西里爾文(KOI8-U) |
28592 | 中歐(ISO) |
28593 | 拉丁文 3 (ISO) |
28594 | 波羅的海文(ISO) |
28595 | 西里爾文(ISO) |
28596 | 阿拉伯文(ISO) |
28597 | 希臘文(ISO) |
28598 | 希伯來(lái)文(ISO-Visual) |
38598 | 希伯來(lái)文(ISO-Logical) |
50000 | 用戶定義的 |
50001 | 自動(dòng)選擇 |
50220 | 日文(JIS) |
50221 | 日文(JIS-允許一個(gè)字節(jié)的片假名) |
50222 | 日文(JIS-允許一個(gè)字節(jié)的片假名 - SO/SI) |
50225 | 韓文(ISO) |
50932 | 日文(自動(dòng)選擇) |
50949 | 韓文(自動(dòng)選擇) |
51932 | 日文(EUC) |
51949 | 韓文(EUC) |
52936 | 簡(jiǎn)體中文(HZ) |
65000 | Unicode (UTF-7) |
65001 | Unicode (UTF-8) |
下表列出了所有支持的代碼頁(yè)及其國(guó)家(地區(qū))或者語(yǔ)言:
代碼頁(yè) | 國(guó)家(地區(qū))或語(yǔ)言 |
---|---|
437 | 美國(guó) |
708 | 阿拉伯文(ASMO 708) |
720 | 阿拉伯文(DOS) |
850 | 多語(yǔ)言(拉丁文 I) |
852 | 中歐(DOS) - 斯拉夫語(yǔ)(拉丁文 II) |
855 | 西里爾文(俄語(yǔ)) |
857 | 土耳其語(yǔ) |
860 | 葡萄牙語(yǔ) |
861 | 冰島語(yǔ) |
862 | 希伯來(lái)文(DOS) |
863 | 加拿大 - 法語(yǔ) |
865 | 日耳曼語(yǔ) |
866 | 俄語(yǔ) - 西里爾文(DOS) |
869 | 現(xiàn)代希臘語(yǔ) |
874 | 泰文(Windows) |
932 | 日文(Shift-JIS) |
936 | 中國(guó) - 簡(jiǎn)體中文(GB2312) |
949 | 韓文 |
950 | 繁體中文(Big5) |
1200 | Unicode |
1201 | Unicode (Big-Endian) |
1250 | 中歐(Windows) |
1251 | 西里爾文(Windows) |
1252 | 西歐(Windows) |
1253 | 希臘文(Windows) |
1254 | 土耳其文(Windows) |
1255 | 希伯來(lái)文(Windows) |
1256 | 阿拉伯文(Windows) |
1257 | 波羅的海文(Windows) |
1258 | 越南文(Windows) |
20866 | 西里爾文(KOI8-R) |
21866 | 西里爾文(KOI8-U) |
28592 | 中歐(ISO) |
28593 | 拉丁文 3 (ISO) |
28594 | 波羅的海文(ISO) |
28595 | 西里爾文(ISO) |
28596 | 阿拉伯文(ISO) |
28597 | 希臘文(ISO) |
28598 | 希伯來(lái)文(ISO-Visual) |
38598 | 希伯來(lái)文(ISO-Logical) |
50000 | 用戶定義的 |
50001 | 自動(dòng)選擇 |
50220 | 日文(JIS) |
50221 | 日文(JIS-允許一個(gè)字節(jié)的片假名) |
50222 | 日文(JIS-允許一個(gè)字節(jié)的片假名 - SO/SI) |
50225 | 韓文(ISO) |
50932 | 日文(自動(dòng)選擇) |
50949 | 韓文(自動(dòng)選擇) |
51932 | 日文(EUC) |
51949 | 韓文(EUC) |
52936 | 簡(jiǎn)體中文(HZ) |
65000 | Unicode (UTF-7) |
65001 | Unicode (UTF-8) |
所以chap 936可以設(shè)置簡(jiǎn)體中文
查看NLS_LANG的方法
- Windows使用
echo %NLS_LANG%
比如我本機(jī)返回SIMPLIFIED CHINESE_CHINA.ZHS16GBK
- Unix使用
env|grep NLS_LANG
比如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK
Windows客戶端設(shè)置,可以在注冊(cè)表中更改NLS_LANG,具體鍵值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多個(gè)ORACLE_HOME時(shí)系統(tǒng)編號(hào)
查看數(shù)據(jù)庫(kù)服務(wù)器字符集
select * from nls_database_parameters; --其來(lái)源于props$, 是表示數(shù)據(jù)庫(kù)的字符集
查看數(shù)據(jù)庫(kù)客戶端字符集環(huán)境
select * from nls_instance_parameters; --其來(lái)源于v$parameter,
查看數(shù)據(jù)庫(kù)會(huì)話字符集環(huán)境
--其來(lái)源于v$nls_parameters垃你,表示會(huì)話自己的設(shè)置,可能是會(huì)話的環(huán)境變量或者是alter session完成,如果會(huì)話沒(méi)有特殊的設(shè)置同衣,將與nls_instance_parameters一致竟块。
select * from nls_session_parameters;
查看數(shù)據(jù)庫(kù)當(dāng)前字符集參數(shù)設(shè)置
SELECT * FROM v$nls_parameters;
客戶端 NLS_LANG 的設(shè)置方法
- Windows:
- 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
- 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通過(guò)修改注冊(cè)表鍵值永久設(shè)置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG
- Unix:
- 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
- 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
可以編輯 bash_profile 文件進(jìn)行永久設(shè)置
vi .bash_profile
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
使 bash_profile 設(shè)置生效
source .bash_profile