`

解决oracle客户端乱码——SQLPLUS乱码解决

 
阅读更多

要解决Oracle的客户端乱码问题关键是要把服务器端使用的字符集跟客户端使用的字符集统一起来。Oracle客户端(Sqlplus)通过NLS_LANG环境变量来确定客户端使用的字符集。NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>

NLS_LANG各部分含义如下:
LANGUAGE指定:
-Oracle消息使用的语言
-日期中月份和日显示
TERRITORY指定
-货币和数字格式
-地区和计算星期及日期的习惯
CHARACTERSET:
-控制客户端应用程序使用的字符集
通常设置或者等于客户端(如Windows)代码页
或者对于unicode应用设置为UTF8

在Windows上查看当前系统的代码页可以使用chcp命令:
E:\>chcp
活动的代码页: 936

代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接:
http://www.microsoft.com/globaldev/reference/dbcs/936.htm

2. 查看 NLS_LANG 的方法
Windows使用:

echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK

Unix使用:

env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK

PLSQL Developer之类Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。


3. 查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;

select * from nls_database_parameters

select userenv(‘language’) from dual;

4. 查看数据库可用字符集参数设置
SELECT * FROM v$nls_valid_values;


5. 客户端 NLS_LANG 的设置方法
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通过修改注册表键值永久设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG

Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
# 使 bash_profile 设置生效
source .bash_profile

分享到:
评论

相关推荐

    oracle11g sqlplus解决退格方向键输入乱码问题

    包含termcap-1.3.1.tar.gz,readline-6.2.tar.gz,rlwrap-0.37.tar.gz包 libtermcap-2.0.8-47.i386.rpm readline-devel-5.2-13.fc9.i386.rpm...按照里面说明文档操作即可,可以解决sqlplus下面退格,方向键输入乱码问题

    oracle 客户端不支持中文解决办法

    ### Oracle客户端中文显示问题及解决方案 #### 问题背景与描述 在Linux环境下安装Oracle数据库时,如果默认的字符集设置为WE8ISO8859P1,将无法支持中文字符。具体表现为,在客户端录入中文数据时能够正常显示,但...

    centos7下Oracle12中文乱码的问题

    替换oracle解压之后的database文件中的filegroup2文件 路径 :database/stage/Components/oracle.jdk/1.6.0.75.0/1/DataFiles

    Oracle 10g客户端v10.2.0.3.0中文精简版(支持32 x64位).rar

    Oracle 10g客户端v10.2.0.3.0 64位/32位是一款非常好用且功能强大的主要用于oracle数据库的开发和编辑等操作的软件,这个精简版本从官方的oracle客户端中提取,软件解压后就可以运行,操作方法也比较简单,可以...

    解决Oracle XE中文乱码问题

    ### 解决Oracle XE中文乱码问题 #### 背景与问题概述 在使用轻量级数据库Oracle XE的过程中,部分用户可能会遇到中文字符显示为乱码的问题。这一问题通常发生在数据库设置不当或者字符集配置错误的情况下。中文...

    Oracle导出成csv格式后显示乱码的解决方法

    总之,解决Oracle导出CSV文件显示乱码的关键在于理解字符编码和数据解析的过程。通过正确设置文件的编码和应用正确的分隔符,可以确保数据在不同程序间顺利转换并保持可读性。如果上述方法无效,可能需要检查数据库...

    解决linux环境下sqlplus乱码的方法

    本篇文章将详细介绍如何解决在Linux环境下SQL*Plus出现的乱码问题。 首先,我们需要了解Linux系统的字符编码。Linux默认使用UTF-8作为系统编码,而SQL*Plus则可能根据Oracle数据库的字符集进行显示。如果两者不一致...

    RedHat5.4Oracle11gSqlplus中文乱码解决.doc

    综上所述,解决Red Hat 5.4上Oracle 11g Sqlplus的中文乱码问题需要综合考虑系统级别的中文支持、环境变量配置以及客户端终端的设置。按照上述步骤操作后,应该能有效解决在各种场景下遇到的中文乱码问题。

    oracle 使用sqlplus导入大sql文件(实战)

    oracle 使用sqlplus导入大sql文件,需熟悉linux命令,批量导入sql文件以及导入乱码解决方案

    解决linux下sqlplus 退格,回车乱码

    在Linux环境中,SQL*Plus是Oracle数据库系统的命令行接口,用于执行SQL语句和PL/SQL块。然而,用户在使用SQL*Plus时可能会遇到一些输入问题,比如退格键和回车键导致的乱码现象。这通常是因为终端不支持某些高级的...

    linux安装oracle 11g乱码(图解)

    本篇文章将详细解析三种解决Linux安装Oracle 11g乱码的方法。 方法一:调整Linux系统的字符集设置 1. 首先,确认当前Linux系统的字符集,可以通过`locale`命令查看: ``` locale ``` 2. 如果发现字符集不支持中文,...

    Linux上Oracle安装前汉字乱码和安装后创建数据库乱码的解决方法(含附件)

    以下是一份详细的解决此类问题的指南,旨在帮助你顺利进行Oracle安装并创建无乱码的数据库。 首先,我们要理解汉字乱码的根源。在Linux系统中,字符编码通常是UTF-8,而Oracle数据库默认可能使用的是其他字符集,如...

    Linux 下修改Oracle 10G的字符集:WE8ISO8859P1 修改为 ZHS16GBK

    - 使用`sqlplus / as sysdba`命令以管理员身份登录Oracle数据库。 2. **关闭并重新启动数据库**: - 执行以下命令以立即关闭数据库:`shutdown immediate` - 使用`startup mount`命令启动数据库至mount状态。 3...

    Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法

    通过以上步骤,你可以成功解决Linux下Oracle SqlPlus使用时的方向键乱码问题,提高你的工作效率。记住,保持系统更新和正确配置是避免这类问题的关键。如果你遇到其他问题,查阅官方文档或在线社区通常都能找到解决...

    Linux下sqlplus退格、上翻键乱码工具

    在Linux环境中,SQL*Plus是Oracle数据库管理系统提供的一个命令行工具,用于交互式地执行SQL语句和PL/SQL块。然而,在某些情况下,用户可能会遇到一些输入问题,比如退格键不起作用或者上翻历史记录时显示乱码。这个...

    oracle乱码?号改成中文 +环境配置

    ### Oracle乱码问题解析与解决方案 #### 一、Oracle乱码问题概述 在使用Oracle数据库的过程中,有时会遇到中文字符显示为乱码的情况,尤其是在不同的操作系统或者不同的客户端访问同一个数据库时更为常见。这种...

    Oracle数据库使用sqlplus时的连接错误与方向键乱码解决

    总的来说,解决Oracle数据库使用sqlplus时的这些问题需要对Linux环境、Oracle网络配置以及终端交互有深入理解。记住,每个错误都有其特定的原因,因此在解决问题时,理解错误信息、检查相关配置文件以及确保服务正常...

    Oracle中文乱码,字符集问题处理

    这里将告诉您Oracle中文乱码,字符集问题处理,具体实现方法:  1. 右键计算机,选择属性,增加环境变量 NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK  2.进入注册表,依次单击HKEY_LOCAL_MACHINE –&gt;...

    解决sqlplus 删除键,方向键扥乱码

    通过上述方法,你应该能够解决SQL*Plus中的乱码问题,使删除键和方向键正常工作。在实际操作过程中,请根据你的具体系统环境进行相应的调整。如果问题依然存在,可能需要进一步排查硬件、驱动程序或其他软件兼容性...

    oracle中文乱码解决的办法

    服务器为windows server 2003,正常安装完oracle客户端后,插入数据时,发现中文都是?。 异常: PLL/SQL中输入select userenv(‘LANGUAGE’) From Dual,结果为AMERICAN_AMERICA.US7ASCII, 注册表中[HKEY_LOCAL_...

Global site tag (gtag.js) - Google Analytics