LANG和NLS
在設(shè)置Linux環(huán)境變量中LANG和NLS_LANG是最常見的,那么LANG和NLS_LANG有哪些區(qū)別呢?下面學(xué)習(xí)啦小編將通過例子來給大家做個區(qū)別比較,一起來了解下吧。
LANG是針對Linux系統(tǒng)的語言、地區(qū)、字符集的設(shè)置,對linux下的應(yīng)用程序有效,如date;NLS_LANG是針對Oracle語言、地區(qū)、字符集的設(shè)置,對oracle中的工具有效
例如:
代碼如下:
export LANG=zh_CN.GB2312
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$export LANG=zh_CN.GB2312
$date
2012年 11月 27日 星期二 16:20:35 CST
顯示是中文界面。
代碼如下:
$export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Tue Nov 27 16:19:03 2012
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL》 select sysdate from dual;
SYSDATE
------------
27-NOV-12
顯示的是英文環(huán)境,但只對ORACLE程序生效。
Linux系統(tǒng)中關(guān)于環(huán)境變量的LANG設(shè)置主要有下列項目:
代碼如下:
[root@blliu tmp]# locale
LANG=zh_CN.gb2312
LC_CTYPE=“zh_CN.gb2312”
LC_NUMERIC=“zh_CN.gb2312”
LC_TIME=“zh_CN.gb2312”
LC_COLLATE=“zh_CN.gb2312”
LC_MONETARY=“zh_CN.gb2312”
LC_MESSAGES=“zh_CN.gb2312”
LC_PAPER=“zh_CN.gb2312”
LC_NAME=“zh_CN.gb2312”
LC_ADDRESS=“zh_CN.gb2312”
LC_TELEPHONE=“zh_CN.gb2312”
LC_MEASUREMENT=“zh_CN.gb2312”
LC_IDENTIFICATION=“zh_CN.gb2312”
LC_ALL=
這里L(fēng)C_ALL沒有設(shè)置,如果它設(shè)置了,上面所有的設(shè)置都無效的,系統(tǒng)會讀取LC_ALL。
locale -a 查看本地字符集
locale -m 查看所有支持的字符集
在Oracle數(shù)據(jù)庫中查NLS_LANG設(shè)置:
代碼如下:
SQL》 SELECT *
2 FROM DATABASE_PROPERTIES
3 WHERE PROPERTY_NAME IN
4 (‘NLS_LANGUAGE’, ‘NLS_TERRITORY’, ‘NLS_CHARACTERSET’);
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------ ------------------------------ --------------------
NLS_LANGUAGE AMERICAN Language
NLS_TERRITORY AMERICA Territory
上面就是Linux環(huán)境變量LANG和NLS_LANG的區(qū)別介紹了,LANG主要影響的是Linux系統(tǒng),NLS_LANG則是對oracle有效,對于非英語的字符集,NLS_LANG的設(shè)置非常重要