ORACLE显示中文为乱码怎么办

ORACLE显示中文为乱码怎么办,第1张

在Oracle中,我们关心三个地方的字符集
l Oracle服务器内部的字符集
l NLS_LANG变量里保存的字符集
l 客户端应用的字符集
Oracle服务器内部的字符集
这是Oracle数据库存储数据使用的字符集。
在Oracle中可能使用
Select userenv('language') from dual;
或者:
Select name, value$ from props$;

服务器为windows server 2003,正常安装完oracle客户端后,插入数据时,发现中文都是?。
异常:
PLL/SQL中输入select userenv('LANGUAGE') From Dual,结果为AMERICAN_AMERICAUS7ASCII,
注册表中[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home]下的
NLS_LANG为SIMPLIFIED CHINESE_CHINAZHS16GBK。
解决方法:
我的电脑---右击---属性---高级---环境变量---系统变量---新建
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINAZHS16GBK,确定后再试试,OK。

oracle11g的安装过程是这样的:
1)安装必需的oracle11g依赖库;
2)创建oracle用户;
3)添加oracle环境;
4)切换oracle用户登陆系统;
5)运行oracle11g安装程序。
oracle11g出现乱码应该只会在安装oracle11g的界面,都是正方框。对于这种情况,应该在终端按以下顺序执行代码:
export LANG=C;export LC_ALL=C
cd /opt/install_oracle11g/database
/runInstaller
上面的/opt/install_oracle11g/database是oracle安装包所在路径,改为你自己的即可。
显示临时空间、交换空间的显存都符合要求后,过会就会d出英文的安装界面。

打开PLSQL

d出登陆界面,进去登陆

随便写了一个查询语句,发现显示有乱码

解决办法:

先查看oracle服务器端的字符编码是什么

配置一个环境变量就可以解决问题

变量名称:NLS_LANG

变量值:SIMPLIFIED CHINESE_CHINAZHS16GBK

按照下面图是

加好环境变量之后关闭PLSQL重新打开,写一个查询试试效果

如下图所示说明乱码问题解决。

查找注册表
32位在:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ORACLE\HOMExx\NLS_LANG(这里是32位的应用程序在64位windows系统中,注册表位置在"WOW6432NODE"下。)64位在:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG(这里是64位的应用程序在64位windows系统中,注册表位置直接在"SOFTWARE"下。)所以修改客户端NLS_LANG需要看清注册表地址。切记。解决方法:将服务器的DB客户端的NLS_LANG改为SIMPLIFIED CHINESE_CHINAAL32UTF8将笔记本的DB客户端的NLS_LANG也改为SIMPLIFIED CHINESE_CHINAAL32UTF8这样笔记本DB客户端输入中文的时候,编码会转为AL32UTF8。服务器上客户端也能对应解码。如果将笔记本DB客户端NLS_LANG设置为ZHS16GBK。在编码转换显示的时候,就会出现乱码。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12899866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存