• 操作系统环境变量LANG和NLS_LANG的关系


    =Native Language Support本地语言支持 NLS

    ORACLE11g-ORA-12705: Cannot access NLS data files or invalid environment specified

    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 

     export ORA_NLS10=/u01/app/Oracle/product/11.2.0/dbhome_1/nls/data

     

    作系统环境变量针对语言项设置有几个,我经常设置的是这两个LANG和NLS_LANG。

    LANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效,如date;

    NLS_LANG是针对Oracle语言、地区、字符集的设置,对oracle中的工具有效。
    例如

    Shell script代码  收藏代码
    1. export LANG=zh_CN.GB2312  
    2. export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
    Trc代码  收藏代码
    1. $export LANG=zh_CN.GB2312  
    2. $date  
    3. 2012年 11月 27日 星期二 16:20:35 CST  

     

    显示是中文界面。

    Trc代码  收藏代码
    1. $export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
    2.   
    3. $sqlplus / as sysdba  
    4. SQL*Plus: Release 10.2.0.4.0 - Production on Tue Nov 27 16:19:03 2012  
    5. Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.  
    6. Connected to:  
    7. Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production  
    8. With the Partitioning, Real Application Clusters, OLAP, Data Mining  
    9. and Real Application Testing options  
    10. SQL> select sysdate from dual;  
    11.   
    12. SYSDATE  
    13. ------------  
    14. 27-NOV-12  

     

    显示的是英文环境,但只对ORACLE程序生效。



    Linux系统中关于环境变量的LANG设置主要有下列项目:

    Trc代码  收藏代码
    1. [root@blliu tmp]# locale  
    2. LANG=zh_CN.gb2312  
    3. LC_CTYPE="zh_CN.gb2312"  
    4. LC_NUMERIC="zh_CN.gb2312"  
    5. LC_TIME="zh_CN.gb2312"  
    6. LC_COLLATE="zh_CN.gb2312"  
    7. LC_MONETARY="zh_CN.gb2312"  
    8. LC_MESSAGES="zh_CN.gb2312"  
    9. LC_PAPER="zh_CN.gb2312"  
    10. LC_NAME="zh_CN.gb2312"  
    11. LC_ADDRESS="zh_CN.gb2312"  
    12. LC_TELEPHONE="zh_CN.gb2312"  
    13. LC_MEASUREMENT="zh_CN.gb2312"  
    14. LC_IDENTIFICATION="zh_CN.gb2312"  
    15. LC_ALL=  

     

    这里LC_ALL没有设置,如果它设置了,上面所有的设置都无效的,系统会读取LC_ALL。

    locale -a 查看本地字符集
    locale -m 查看所有支持的字符集


    在Oracle数据库中查NLS_LANG设置:

    Sql代码  收藏代码
      1. SQL> SELECT *  
      2.   2    FROM DATABASE_PROPERTIES  
      3.   3   WHERE PROPERTY_NAME IN  
      4.   4         ('NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET');  
      5.   
      6. PROPERTY_NAME                  PROPERTY_VALUE                 DESCRIPTION  
      7. ------------------------------ ------------------------------ --------------------  
      8. NLS_LANGUAGE                   AMERICAN                       Language  
      9. NLS_TERRITORY                  AMERICA                        Territory 
  • 相关阅读:
    枚举类型
    [ Java学习 ] “goto语句“ 和 “continue + 标号” 的不同待遇
    [ Java学习 ] 其他知识总结(重要)
    [ Java学习 ] Java变量以及内存分配(非常重要)
    [ Java学习 ] 包语句 package等语句的汇总整理
    [ Java学习 ] 破除思维定势之 C++ 和 Java 的差异 003
    P1601一道高精度的题
    啊哈,我又来了
    算了,有一道水题
    再水一道题
  • 原文地址:https://www.cnblogs.com/jycjy/p/6937916.html
Copyright © 2020-2023  润新知