命令行直接设定环境变量,可以正常展示:
注意:不要设定双引号,设定以后反而显示乱码
也可以直接设定环境变量
上述设定对于PL/SQL同样有效
参考:
NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性。对于非英语的字符集,NLS_LANG的设置就非常重要。
NLS:‘National Language Support (NLS)’ 当我们设定一种nls的时候实际上我们是为oracle在存放数据时指定了他的语种所特有的一些表达形式,比如我们选择chinese,那么它的中文字符如何存放,按什么规则排序,货币如何表示,日期格式也就被设定了。
NLS_LANG参数由以下部分组成:NLS_LANG=<Language>_<Territory>.<Clients Characterset>
NLS_Language 指定:
- Oracle(错误)信息的语言
- 日和月份的名称
注意:NLS_LANGUAGE与插入和查询的*数据*的语言无关。
NLS_Territory 指定:
- 货币和数字格式
- 计算星期和天数的范围和惯例
客户端字符集(CLIENTS CHARACTERSET):
- 定义Oracle客户端,客户应用使用的编码
* 或者它要符合您Microsoft Windows代码页 (GUI工具的ACP, 命令提示符的CHCP 值)
* 或者为Unicode WIN32应用设置为UTF8/AL32UTF8。
常见的值可以参见Oracle Database Client Globalization Support
Windows中设置NLS_LANG
1.命令提示符中设置为环境变量
如果您在命令行中设置NLS_LANG为环境变量,它将覆盖注册表和系统属性中的NLS_LANG的定义。在命令提示符中,使用“set”命令,例如:
LANGUAGE设置为中文时,提示如下:
C:\Users\TianPan>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
C:\Users\TianPan>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 11月 28 10:07:21 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger
已连接。
SQL> select sysdate from dual;
SYSDATE
--------------
28-11月-14
当Language设置为American时,提示信息则变为英文:
C:\Users\TianPan>set nls_lang=AMERICAN_AMERICA.ZHS16GBK
C:\Users\TianPan>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 28 10:07:51 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn scott/tiger
Connected.
SQL> select sysdate from dual;
SYSDATE
------------
28-NOV-14
在Windows下通过set nls_lang来设置,只是Session级别的,关闭cmd窗口后再打开,就又变为原来的设置了。如需永久生效,可以修改注册表的参数。
2.注册表设置(永久生效)
默认情况下,windows上的Oracle安装使用注册表来定义这个设置。
版本 10g 及以上:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<oracle_home_name>
这里您会看到一个条目名为NLS_LANG
在64位windows平台上安装32位软件,会使用32位兼容性路径
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_<oracle_home_name>
3.操作系统环境变量
尽管注册表是Microsoft Windows设置的主要存储位置,它不是唯一可以设置参数的地方。
虽然不推荐,但您可以设置NLS_LANG为系统属性中的系统或者用户变量。这个设置会被所有Oracle home使用。
设置位置: '我的电脑' -> '属性' > '高级' -> '环境变量'
因为这些环境变量比注册表中已经设置的参数级别高,所以除非您有非常好的理由否则不要在这个位置设置Oracle参数。
Linux/Unix下的设置
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
DB中的NLS_LANG
DB也有自己的NLS_LANG参数,来标识数据库的语言,地域,字符集。可以通过以下的SQL来查得,
SELECT * FROM v$nls_parameters;
OR
SELECT USERENV ('language') FROM DUAL;
客户端的NLS_LANG和DB的NLS_LANG
DB的NLS_LANG和客户端环境变量中NLS_LANG尽可能的保持一致。Setting the NLS_LANG Environment Variable for Oracle Databases 提供了如何保持一致的方法。
那么为什么要保持一致呢?那是因为如果字符集不匹配,有可能在DB和Client间相互转换的过程中,出现字符转换错误的情况。比如Oracle nls_lang tips中举的例子。
更详细的内容可以参考下边这些材料:
Microsoft Windows 环境中NLS_LANG的正确设置 (Doc ID 1577370.1)
在 Unix 环境中正确设置 NLS_LANG (Doc ID 1548858.1)
NLS_LANG Explained (How does Client-Server Character Conversion Work?) (Doc ID 158577.1)
NLS_LANG FAQ
Oracle Database Client Globalization Support
Setting the NLS_LANG Environment Variable for Oracle Databases
Oracle nls_lang tips
出处:http://blog.csdn.net/pan_tian/article/details/7745717
相关推荐
对于PL/SQL、SQL*Plus或Toad等工具,可以通过修改环境变量`NLS_LANG`来调整字符集设置,使其与数据库的字符集相匹配。具体操作步骤如下: - 打开注册表编辑器,定位到`HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE`目录下,...
在Linux环境下,SQL*Plus是Oracle数据库管理系统的命令行工具,用于执行SQL语句和PL/SQL块。然而,有时用户可能会遇到字符编码问题,导致输出显示为乱码。这通常与系统环境变量、终端设置或者数据库自身的字符集不...
4、设置ORACLE的语言,添加环境变量NLS_LANG ,值为: AMERICAN_AMERICA.AL32UTF8 该值可以连接到远程数据库中,通过下面的sql语句查询得到: select userenv('language') from dual; 如果该值设置不正确,将导致PL...
新建环境变量:“NLS_LANG”,值:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”; 六、在32BIT应用服务器上安装配置 32 位的 ORACLE 客户端 由于我们安装的数据库为 64位,KXBP不支持 64位操作系统,所以我们需要安装一个...
例如,可以通过`ALTER SYSTEM SET NLS_CHARACTERSET`命令修改数据库字符集,或调整客户端的环境变量如`NLS_LANG`来解决乱码问题。 再者,当遇到Oracle资源正忙的情况,这可能是因为并发用户过多或SQL执行效率低下。...
#### 五、环境变量配置 - **TNS_ADMIN:** 设置为`tlnames.ora`文件所在位置,例如`D:\ProgramFiles\instantclient_11_2\NETWORK\ADMIN`。 - **NLS_LANG:** 设置为`SIMPLIFIEDCHINESE_CHINA.ZHS16GBK`,以便支持...
4:配置pl/sql 工具--首选项--连接 ORCALE中目录:D:\Program Files\PLSQL Developer 13\instantclient_19_6 OCI库:D:\Program Files\PLSQL Developer 13\instantclient_19_6\oci.dll 5:设置环境变量 1)指向Oracle...
3. **设置环境变量**:添加系统环境变量,包括`NLS_LANG`以解决中文字符乱码问题,设置为`SIMPLIFIED CHINESE_CHINA.ZHS16GBK`;`TNS_ADMIN`指向Oracle客户端的安装目录;`Path`中包含`C:\instantclient_11_1`,使得...
解决方法是设置`NLS_LANG`环境变量,或者在PL/SQL Developer等工具中设置适当的字符集。 对于数据库中的对象,如表、视图和索引,可以使用SQL命令进行操作。`DESC`命令用于查看表结构,如`DESC emp`。视图的创建和...
可以使用`NLS_LANG`环境变量来设置客户端的字符集,如`AMERICAN_AMERICA.ZHS16GBK`。 通过以上步骤,开发者和DBA可以成功配置并使用Oracle Instant Client 10.2连接到远程数据库,进行数据查询、管理和维护工作。在...
PLSQL Developer是一款强大的Oracle数据库管理工具,主要用于编写、调试和执行PL/SQL代码。在本文中,我们将详细探讨如何在Windows环境下安装配置PLSQL Developer,以及解决可能出现的问题。 首先,你需要下载PLSQL...