NLS_LANG是一個環境變量,用於定義語言,地域以及字符集屬性。對於非英語的字符集,NLS_LANG的設置就很是重要。
NLS:‘National Language Support (NLS)’ 當咱們設定一種nls的時候實際上咱們是爲oracle在存放數據時指定了他的語種所特有的一些表達形式,好比咱們選擇chinese,那麼它的中文字符如何存放,按什麼規則排序,貨幣如何表示,日期格式也就被設定了。
NLS_LANG參數由如下部分組成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>
NLS_Language 指定:
- Oracle(錯誤)信息的語言
- 日和月份的名稱
注意:NLS_LANGUAGE與插入和查詢的*數據*的語言無關。
NLS_Territory 指定:
- 貨幣和數字格式
- 計算星期和天數的範圍和慣例
客戶端字符集(CLIENTS CHARACTERSET):
- 定義Oracle客戶端,客戶應用使用的編碼
* 或者它要符合您Microsoft Windows代碼頁 (GUI工具的ACP, 命令提示符的CHCP 值)
* 或者爲Unicode WIN32應用設置爲UTF8/AL32UTF8。
Windows中設置NLS_LANG
1.命令提示符中設置爲環境變量
若是您在命令行中設置NLS_LANG爲環境變量,它將覆蓋註冊表和系統屬性中的NLS_LANG的定義。在命令提示符中,使用「set」命令,例如:
LANGUAGE設置爲中文時,提示以下:
C:\Users\TianPan>
set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
C:\Users\TianPan>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 11月 28 10:07:21 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger
已鏈接。
SQL> select sysdate from dual;
SYSDATE
--------------
28-11月-14
當Language設置爲American時,提示信息則變爲英文:
C:\Users\TianPan>
set nls_lang=AMERICAN_AMERICA.ZHS16GBK
C:\Users\TianPan>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 28 10:07:51 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger
Connected.
SQL> select sysdate from dual;
SYSDATE
------------
28-NOV-14
在Windows下經過set nls_lang來設置,只是Session級別的,關閉cmd窗口後再打開,就又變爲原來的設置了。如需永久生效,能夠修改註冊表的參數。
2.註冊表設置(永久生效)
默認狀況下,windows上的Oracle安裝使用註冊表來定義這個設置。
版本 10g 及以上:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<oracle_home_name>
這裏您會看到一個條目名爲NLS_LANG
在64位windows平臺上安裝32位軟件,會使用32位兼容性路徑
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_<oracle_home_name>
3.操做系統環境變量
儘管註冊表是Microsoft Windows設置的主要存儲位置,它不是惟一能夠設置參數的地方。
雖然不推薦,但您能夠設置NLS_LANG爲系統屬性中的系統或者用戶變量。這個設置會被全部Oracle home使用。
設置位置: '個人電腦' -> '屬性' > '高級' -> '環境變量'
由於這些環境變量比註冊表中已經設置的參數級別高,因此除非您有很是好的理由不然不要在這個位置設置Oracle參數。
Linux/Unix下的設置
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
更詳細的內容能夠參考下邊這些材料:
Microsoft Windows 環境中NLS_LANG的正確設置 (Doc ID
1577370.1)
NLS_LANG Explained (How does Client-Server Character Conversion Work?) (Doc ID
158577.1)