天天看點

linux作業系統環境變量LANG和NLS_LANG差別linux作業系統環境變量LANG和NLS_LANG差別

linux作業系統環境變量LANG和NLS_LANG差別

在linux作業系統中環境變量針對語言項設定有幾個,經常設定的是LANG和NLS_LANG。

LANG是針對Linux系統的語言、地區、字元集的設定,對linux下的應用程式有效,如date;NLS_LANG是針對Oracle語言、地區、字元集的設定,對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 

顯示的是英文環境,但隻對ORACLE程式生效。

Linux系統中關于環境變量的LANG設定主要有下列項目:

複制代碼 代碼示例: [[email protected] 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= 

這裡LC_ALL沒有設定,如果它設定了,上面所有的設定都無效的,系統會讀取LC_ALL。

locale -a 檢視本地字元集

locale -m 檢視所有支援的字元集

在Oracle資料庫中查NLS_LANG設定:

複制代碼 代碼示例: 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