萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 比較LANG和NLS_LANG在Linux中的作用

比較LANG和NLS_LANG在Linux中的作用

  在設置Linux環境變量中LANG和NLS_LANG是最常見的,那麼LANG和NLS_LANG有哪些區別呢?下面將通過例子來給大家做個區別比較,一起來了解下吧。

 比較LANG和NLS_LANG在Linux中的作用

  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設置主要有下列項目:

  代碼如下:

  [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=

  這裡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

  上面就是Linux環境變量LANG和NLS_LANG的區別介紹了,LANG主要影響的是Linux系統,NLS_LANG則是對oracle有效,對於非英語的字符集,NLS_LANG的設置非常重要。

copyright © 萬盛學電腦網 all rights reserved