知识大全 Oracle 8i中字符集乱码问题析及其解决办法

Posted

篇首语:正因为生命有限,时光匆匆,所以才要加倍努力,不然以后拿什么来回忆。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle 8i中字符集乱码问题析及其解决办法相关的知识,希望对你有一定的参考价值。

Oracle 8i中字符集乱码问题析及其解决办法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一 问题描述  SQL Plus WorkSheet是一个窗口图形界面的SQL语句编辑器 对于那些喜欢窗口界面而不喜欢字符界面的用户 该工具相对SQL/PLUS受到了很大的欢迎 但从Oracle i以后 如果安装Oracle i时选取的是别于英语的字符集 对于我们中国 通常会选取简体中文字符(ZHS GBK) 安装成功后 运行SQL Plus WorkSheet程序 会出现所有的中文显示以及查询结果均为乱码的情况   二 问题分析  最初出现该问题 首先怀疑就是安装时字符集设置有问题 也就是说没有设置正确的简体中文字符集 首先检查数据库字符集 在SQL/PLUS中 运行下面的SQL语句 检查所连接数据库的字符集   SQL> select userenv( language ) from dual;  USERENV( LANGUAGE )  SIMPLIFIED CHINESE_CHINA ZHS GBK   查询结果发现数据库安装时所选字符集为简体中文ZHS GBK 说明安装时字符集设置完全正确 第二步开始怀疑是用户客户端字符集问题 检查客户端注册表 打开注册表编辑程序(RegEdit) 在HKEY_LOCAL_MACHINE/SOFARE/ORACLE/NLS_LANG 发现Oracle客户端字符集为AMERICAN_AMERICA ZHS GBK 设置也完全正确 可以排除是客户端字符集设置错误的问题 同时还有一个现象就是在同一个客户端机器上SQL/PLUS中的查询字符集显示完全正常 这也说明不是字符集设置问题 而是系统程序SQL/Plus Worksheet的问题   在Oracle i以前的版本中 从来没有出现过这样的情况 这应该和Oracle版本有关 我们知道Oracle i和它前面的版本一个显著的区别就是大部分的Oracle系统程序 现在均采用Java驱动 其实这也就是产生字符集乱码问题的根本所在 非Java驱动的程序 如SQL*Plus 有一个系统参数NLS_LANG 该参数在UNIX系统中设置在环境变量中 在Windows操作系统中设置在注册表中 这个参数决定了客户端应用程序的字符集 而对于基于Java应用的程序 如现在遇到的SQL*PLus Worksheet NLS_LANG参数对这类程序是不起任何作用的   三 解决方案  找到了问题产生的原因后 下面来讨论如何解决该问题 对于Oracle Enterprise Manager中的所有工具 有一个配置文件名为dbappscfg properties 修改该文件即可解决上述问题 这个文件的位置在$ORACLE_HOME\\sysman\\config目录下 用任何的文本编辑器打开该文件 在这个文件里面 找到这样一项 # SQLPLUS_NLS_LANG=AMERICAN_AMERICA WE ISO P   去掉注释符# 同时将其修改为SQLPLUS_NLS_LANG=AMERICAN_AMERICA ZHS GBK   对于Windows操作系统 还需要修改一项 在文件中找到# SQLPLUS_SYSTEMROOT=c:\\\\WINNT 去掉注释符 将其修改为你所在机器的操作系统主目录 如操作系统的主目录在D盘的Winnt下 则将其修改为 SQLPLUS_SYSTEMROOT=d:\\\\WINNT   对于后面一项的修改只对Windows操作系统进行 对UNIX操作系统则不需要 如果在Windows操作系统中不修改该项 在Oracle Enterprise Manager中 连接系统时 会提示如下的错误   ORA TNS:protocol adapter error   或者   ORA Connect failed because target host or object does not exist   修改完成后 保存文件 退出编辑 重新连接SQL PLUS Worksheet 字符集乱码问题得到解决 显示正确的简体中文字符集      cha138/Article/program/Oracle/201311/17236

相关参考

知识大全 oracle em 按钮乱码解决办法及em网页变成英文

一oracleem中按钮乱码解决办法:修改jdk下面的字体  复制代码代码如下:  [oracle@esopdb_]$cd$ORACLE_HOME/jdk/jre/lib/[oracle@esopli

知识大全 解决oracle10g安装后的中文显示乱码

在安装完oracleg后由于jre默认使用的字体问题使得emdbcanetcanetmgr显示中文时出现□□字样的乱码下面来说明这个问题的解决办法  改变$ORACLE_HOME/jdk目录下的jre

知识大全 oracle8i、dev2000共处一室的数据库连接问题的解决方法

  在windwos上面装上oracle和dev之后运行dev一直出现下面的错误  >  按照大虾的指导方法终于解决这个问题了  先安装dev后安装oracle要位于不同的目录下面  配置dev的SQ

知识大全 Oracle数据库字符集问题解决方案大全

Oracle数据库字符集问题解决方案大全  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在国内外

知识大全 jsp中文页面乱码与传参乱码

  页面乱码  这种乱码的原因是应为没有在页面里指定使用的字符集编码解决方法只要在页面开始地方用下面代码指定字符集编码即可代码如下   <%@pagecontentType="text

知识大全 快速掌握Oracle10gEM乱码的解决方法

快速掌握Oracle10gEM乱码的解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在安

知识大全 TextBox中输入字符控制的解决办法

TextBox中输入字符控制的解决办法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 oracle中的数据库乱码的原因与解决

  在SQL*Plus中用insert插进的都是中文的为什么一存入服务器后再select出的就是???    有的时候服务器数据先导出重装服务器再导入数据结果发生数据查询成???    ……    这

知识大全 Oracle数据库频繁归档问题的解决办法

Oracle数据库频繁归档问题的解决办法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Orac

知识大全 JSP中使用request乱码问题的解决

JSP中使用request乱码问题的解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nbs