精华内容
下载资源
问答
  • 设置UNIX环境下的NLS_LANG如何设置NLS_LANG变量1)正确配置LC_ALL参数2)配置telnet/ssh/SecureCRT客户端的字符集linux中可以用locale命令来查看NLS_LANG设置,如下例所示[root@HXZG~]#localeLANG=en_US.UTF-8LC_CTYPE...

    设置 UNIX环境下的NLS_LANG

    如何设置 NLS_LANG 变量

    1) 正确配置 LC_ALL 参数

    2) 配置 telnet/ssh/SecureCRT 客户端的字符集

    linux中可以用locale命令来查看 NLS_LANG设置,如下例所示

    [root@HXZG ~]# locale

    LANG=en_US.UTF-8

    LC_CTYPE="en_US.UTF-8"

    LC_NUMERIC="en_US.UTF-8"

    LC_TIME="en_US.UTF-8"

    LC_COLLATE="en_US.UTF-8"

    LC_MONETARY="en_US.UTF-8"

    LC_MESSAGES="en_US.UTF-8"

    LC_PAPER="en_US.UTF-8"

    LC_NAME="en_US.UTF-8"

    LC_ADDRESS="en_US.UTF-8"

    LC_TELEPHONE="en_US.UTF-8"

    LC_MEASUREMENT="en_US.UTF-8"

    LC_IDENTIFICATION="en_US.UTF-8"

    LC_ALL=

    大多数unix版本都是以下默认设置“C”,

    [oracle@HXZG ~]$ locale

    LANG=

    LC_CTYPE="C"

    LC_COLLATE="C"

    LC_MONETARY="C"

    LC_NUMERIC="C"

    LC_TIME="C"

    LC_MESSAGES="C"

    LC_ALL=

    “C” 代表着 NLS_LANG为 US7ASCII,这就意味着你的终端只能显示a-z, A-Z and 0-9这些字符

    Unix环境可以通过export LC_ALL 指定一个值来设置语言环境变量

    [oracle@HXZG ~]$ export LC_ALL=en_US.UTF-8

    [oracle@HXZG ~]$ locale

    LANG=en_US.UTF-8

    LC_CTYPE="en_US.UTF-8"

    LC_NUMERIC="en_US.UTF-8"

    LC_TIME="en_US.UTF-8"

    LC_COLLATE="en_US.UTF-8"

    LC_MONETARY="en_US.UTF-8"

    LC_MESSAGES="en_US.UTF-8"

    LC_PAPER="en_US.UTF-8"

    LC_NAME="en_US.UTF-8"

    LC_ADDRESS="en_US.UTF-8"

    LC_TELEPHONE="en_US.UTF-8"

    LC_MEASUREMENT="en_US.UTF-8"

    LC_IDENTIFICATION="en_US.UTF-8"

    LC_ALL=

    [oracle@HXZG ~]$ export LC_ALL=zh_CN.gb2312

    [oracle@HXZG ~]$ locale

    LANG=en_US.UTF-8

    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=zh_CN.gb2312

    NLS_LANG 由三部分组成 : NLS_LANG=_.

    :NLS_LANG=语言_地域_客户端字符集

    LANG值为"en_US.UTF-8" 时,意味着NLS_LANG用以下格式设置 NLS_LANG=AMERICAN_AMERICA.AL32UTF8

    如果LANG值为 "fr_FR.UTF-8" 那在 NLS_LANG设置的值就是 FRENCH_FRANCE.AL32UTF8.

    也可以通过export设置LANG

    [oracle@HXZG ~]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

    [oracle@HXZG ~]$ locale | grep LANG

    LANG=en_US.UTF-8

    展开全文
  • nls_langnls_language、nls_characterset的区别 oracle 数据库对字符的处理及表现形式分为三个层面,优先级先后分别是数据库初始化参数字符集、os操作系统环境变量级、session级 先说什么是字符集?字符集就是...
    nls_lang、nls_language、nls_characterset的区别

    oracle 数据库对字符的处理及表现形式分为三个层面,优先级先后分别是数据库初始化参数字符集、os操作系统环境变量级、session级

    先说什么是字符集?字符集就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。

    格式为<语言><比特位数><编码 >
    比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集

    数据库初始化参数字符集,在建数据库前指定的字符集,建立后通常不能修改,如果修改可以用命令alter database set character xxx; 不过这样修改有一定的危险,有可能会出现乱码造成数据的丢失,而且修改后的字符集一定是修改前的超集。如果未指定建库时会依赖os的设置。

    session级作用域只是影响那个连接

    nls_characterset设置服务器的字符集

    nls_lang客户端字符集定义了客户端字符数据的编码方式,任何发自或发往客户端的字符数据均使用客户端定义的字符集编码,客户端可以看作是能与数据库直接连接的各种应用

    NLS_NCHAR_CHARACTERS? 全球化的字符集默认为 AL16UTF16

    nls_language是数据库内的默认语言 ,可能不易理解,下面是官方解释
    NLS_LANGUAGE specifies the default language of the database. This language is used for messages, day and month names, symbols for AD, BC, a.m., and p.m., and the default sorting mechanism. This parameter also determines the default values of the parameters NLS_DATE_LANGUAGE and NLS_SORT.

    查询相关的几个表
    nls_database_parameters;
    nls_session_parameters;

    转自:http://wenku.baidu.com/view/f7afc11b650e52ea551898f0 .html




    oracle的字符集(NLS_LANGUAGE)

    数据库服务器字符集
    select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。

    客户端字符集环境
    select * from nls_instance_parameters,其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表。

    会话字符集环境
    select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,
    可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

    客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。
    如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
    字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

    注:

    1.通过alter system set nls_language='AMERICAN' scope=spfile; 可以更改nls_database_parameters和nls_instance_parameters的nls_language

    2. 通过alter session set nls_language='SIMPLIFIED CHINESE'; 可以更改nls_session_parameters的nls_language

    转自:http://blog.csdn.net/zftang/article/details/6586524




    关于nls_lang与nls_language的区别

    一个是环境变量,一个是数据库参数。
     
    nls_lang是在客户端设置客户端字符集,也就是在环境变量(Linux:~/.bash_profile)中。
     
    nls_language在服务端设置,SERVER端的lang,属于parameter,可以由alter system set nls_language='...' scope=spfile 来修改。
     
    nls_characterset也是设置服务器的字符集。

    转自:http://bachue.is-programmer.com/posts/21202.html
    展开全文
  • window下修改NLS_LANG环境变量快捷工具,此工具利用bat写的,可以看见源码,提供给大家参考
  • 客服端 NLS_LANG 环境变量对 NLS_DATE_FORMAT 参数设置的影响 一. NLS_LANG , 这个参数作为环境变量配置于 .bash_profile ( LINUX) 中(在windows 中,配置于注册...

    客服端 NLS_LANG 环境变量对 NLS_DATE_FORMAT 参数设置的影响

    一. NLS_LANG  , 这个参数作为环境变量配置于 .bash_profile ( LINUX) 中(在windows 中,配置于注册表中)。 其作用主要用于设置oracle客服端工具的语言环境,如sql*plus这样的工具。其格式主要用三部分组成: 语言, 区域, 字符集 。 语法格式为: NLS_LANG=language_territory.charset  , 其中language 表示语言部分, territory表示区域, charset 表示字符集。 eg: 'SIMPLIFIED CHINESE'_SINGAPORE.ZHS16GBK 。(根据NLS_LANG设置的不同,默认的日期格式会不同,比如:若NLS_LANG=english_america.UTF8,则默认的日期格式就是'DD-MON-RR',若NLS_LANG=SIMPLIFIEDCHINESE_SINGAPORE.ZHS16GBK ,则默认的日期格式就是'yyyy/mm/dd')

     

    二. NLS_DATE_FORMAT , 这个参数是实例级的, 设置spfile或者pfile 文件中。 其设置主要用于控制 date 类型数据的格式化输出。 同时其作用域 session级,instance级, 也说明这个参数可以在session 中改变,各个session可以设置不同 date格式。NLS_DATE_FORMAT 只能用alter session修改,不能用alter system修改 

    三. NLS_LANG 和 NLS_DATE_FORMAT 的关系。

    在linux中, 通过修改参数文件中 NLS_DATE_FORMAT  往往不能达到修改 date 的输出格式。 但是如果你修改.bash_profile中NLS_LANG参数而又能达到修改date 的默认输出格式。如果想永久的修改NLS_DATE_FORMAT则必须要在.bash_profile中添加NLS_DATE_FORMAT=' '来修改

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24984814/viewspace-707921/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/24984814/viewspace-707921/

    展开全文
  • 操作系统环境变量针对语言项设置有几个,我经常设置的是这两个LANGNLS_LANGLANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效,如date; NLS_LANG是针对Oracle语言、地区、字符集的...

    NLS_打头的都是ORACLE家的!!!!

     

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

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

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

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

    characterset字符集就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。 格式为<语言><比特位数><编码 >比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集
    数据库初始化参数字符集,在建数据库前指定的字符集,建立后通常不能修改,如果修改可以用命令alter database set character set  xxx; 不过这样修改有一定的危险,有可能会出现乱码超成数据的丢失,而且修改后的字符集一定是修改前的超集。如果未指定建库时会依赖os的设置。session级作用域只是影响那个连接
     
     
    NLS_LANG是环境变量,包括3部分NLS参数:NLS_LANGUAGE, NLS_TERRITORY, NLS_CHARACTERSET,需要在启动SQLPLUS等工具之前设置;
    NLS_LANGUAGE主要控制SESSION中提示消息的语言,可以使用ALTER SESSION在SQLPLUS里面设置;
    NLS_TERRITORY主要控制SESSION中的日期和货币等本地化参数的现实格式,也可以像NLS_LANGUAGE一样在 SESSION 里面设置;
    NLS_CHARACTERSET控制客户端的字符集,不能在SESSION里面进行设置,只能通过NLS_LANG环境变量的方式进行设置。

     

     

    LANG与NLS_LANG


    例如

     

    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) 19822007, 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  

     

    查看会话NLS_LANG

    select * from nls_session_parameters;

     

     

    exp时先确确认 服务器NLS_LANG设置客户端NLS_LANG 一样,再导出表,以免发生字符集转换数据乱码损坏.

    例子:

    SQL> select userenv('language') from dual;

    USERENV('LANGUAGE')
    ----------------------------------------------------
    AMERICAN_AMERICA.ZHS16GBK

    SQL> !    
    [oracle@node1 ~]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    [oracle@node1 ~]$ echo $NLS_LANG
    AMERICAN_AMERICA.ZHS16GBK
    [oracle@node1 ~]$ exp scott/tiger file='/u02/exp_imp/tb_pt_sal_other' log='/u02/exp_imp/tb_pt_sal_other.log' tables=tb_pt:sal_other

     

     

     

    2. 设置 NLS_*******方法:
    2.1 环境变量设置(windows),下划线必须和territory配对,点必须和字符集配对
    set nls_lang=american_america.utf8
    set nls_lang=american / set nls_lang=american_ / set nls_lang=american_.
    set nls_lang=_america
    set nls_lang=.utf8

    2.2 SESSION设置
    alter session set nls_language='american' nls_territory='america';
    alter session set nls_language='american';
    alter session set nls_territory='america';


     

     

    Oracle数据库NLS_LANG设置


     1. NLS_LANG 参数组成

      NLS_LANG参数由以下部分组成:

      NLS_LANG=_.

      NLS_LANG各部分含义如下:

      LANGUAGE指定:

      -Oracle消息使用的语言

      -日期中月份和日显示

      TERRITORY指定

      -货币和数字格式

      -地区和计算星期及日期的习惯

      CHARACTERSET:

      -控制客户端应用程序使用的字符集

      通常设置或者等于客户端(如Windows)代码页

      或者对于unicode应用设置为UTF8

      查看当前oracle使用的CHARACHERSET:

      select * from v$nls_parameters where parameter='NLS_CHARACTERSET';

      查看instance字符集Language与Territory:

      select * from nls_instance_parameters;

      NLS_LANGUAGE

      NLS_TERRITORY

      这两项

      2、操作系统查看NLS_LANG设置:

      env| grep NLS_LANG

     

     

     

     

     

     

    展开全文
  • NLS_LANG

    2018-04-03 13:27:54
    NLS_LANG1. NLS_LANG 参数组成 NLS_LANG参数由以下部分组成: NLS_LANG=&lt;Language&gt;_&lt;Territory&gt;.&lt;Clients Characterset&gt; NLS_LANG各部分含义如下: LANGUAGE指定: -...
  • 可以在注册表中更改NLS_LANG,具体键值位于: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\ xx指存在多个ORACLE_HOME时系统编号。 3. 查看数据库当前字符集参数设置 SELECT * FROM v$nls_parameters; 4. 查看数据库...
  • 1.Windows环境,查看和修改NLS_LANG变量的方法1)进入Windows注册表方法点击Windows操作系统的左下角的“开始”(“start”),然后点击“运行”(Run),最后输入“regedit...
  • NLS_LANG详解

    2017-12-15 21:47:00
    (1)NLS_LANG参数组成 NLS_LANG参数由以下部分组成: NLS_LANG=_. NLS_LANG各部分含义如下: LANGUAGE指定: -Oracle消息使用的语言 -日期中月份和日显示 TERRITORY指定 -货币和数字格式 -地区和计算星期及...
  • Oracle客户端 NLS_LANG 的设置方法,如果服务器端与客户端不一样会提示错误,windows下通过注册表下可以解决
  • nls_lang的意义

    千次阅读 2018-12-19 15:35:15
    环境变量NLS_LANG NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性。对于非英语的字符集,NLS_LANG的设置就非常重要。 NLS:‘National Language Support (NLS)’ 当我们设定一种nls的时候实际上我们是...
  • oracle nls_lang 设置

    千次阅读 2015-08-04 22:26:31
    1.Windows环境,查看和修改NLS_LANG变量的方法 1)进入Windows注册表方法 点击Windows操作系统的左下角的“开始”(“start”),然后点击“运行”(Run),最后输入“regedit”回车后便可进入到注册表界面。 2...
  • 客服端 NLS_LANG 环境变量对 NLS_DATE_FORMAT 参数设置的影响 一. NLS_LANG , 这个参数作为环境变量配置于 .bash_profile ( LINUX) 中(在windows 中,配置于注册...
  • database_parameters、props$、v$nls_parameters查询结果中NLS_CHARACTERSET表示字符集,NLS_NCHAR_CHARACTERSET表示国家字符集二、修改数据库字符集按照上文所说,数据库字符集在创建后原则上不能更改。不过有2种...
  • 查看NLS_LANG的方法

    千次阅读 2018-08-20 16:24:36
    查看NLS_LANG的方法   查看 NLS_LANG 的方法 Windows使用: echo %NLS_LANG% 如: E:\&gt;echo %NLS_LANG% AMERICAN_AMERICA.ZHS16GBK Unix使用: env|grep NLS_LANG 如: /opt/oracle&gt;env|grep NLS_LANG ...
  • nls_lang

    2011-09-08 12:04:56
    1. NLS_LANG参数组成 NLS_LANG参数由以下部分组成: NLS_LANG=_. NLS_LANG各部分含义如下: LANGUAGE指定: -Oracle消息使用的语言 -日期中月份和日显示 TERRITORY指定 -货币和数字格式 -地区和计算星期
  • NLS_LANG 环境变量

    千次阅读 2015-05-27 15:58:36
    设置环境变量NLS_LANG(客户端的环境变量)">Oracle 设置环境变量NLS_LANG(客户端的环境变量)作者:学无止境 NLS_LANG格式: NLS_LANG=LANGUAGE_TERRITORY.Client CHARACTERSET 1、NLS_LANG 参数组成 NLS_LANG...
  • linux设置NLS_LANG

    2013-10-10 10:45:32
    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 或者在/etc/profile里配置 1、select * from nls_database_parameters where parameter in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET'); 2、格式: NLS_LA...
  • 环境变量NLS_LANG

    千次阅读 2020-06-05 09:02:02
    NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性。对于非英语的字符集,NLS_LANG的设置就非常重要。 NLS:‘NationalLanguageSupport(NLS)’当我们设定一种nls的时候实际上我们是为oracle在存放数据时...
  • nls_lang】是一个环境变量,用于在客户端设置,设置客户端的字符集。(Linux下修改这个文件:~/.bash_profile) 【nls_language】是一个是数据库参数,用于在服务端设置,设置服务器端的字符集,可...
  • Oracle环境变量NLS_LANG

    2016-04-11 23:18:53
    Oracle环境变量NLS_LANG NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性。对于非英语的字符集,NLS_LANG的设置就非常重要。 NLS:‘National Language Support (NLS)’ 当我们设定一种nls的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,591
精华内容 6,636
关键字:

修改nls_lang