plsql 结果集 中文乱码

刚到新公司,需要搭建环境(win7+oracle 11g (client端)),安装完毕plsql,测试了一下,在结果集中,中文显示成了“?”,这不是我想要的结果,所以解决它。

说说产生这个问题的原理吧(个人推测):实际上这个乱码问题与web开发出现乱码问题是一致的,即:编码时与解码时采用的方式不一致,oracle保存数据编码方式是数据库创建时决定的;plsql解码是需要靠系统的环境变量的。如果这两个不一致,必然会产生乱码,你说是不是呢?

说道这里解决方案也就出来了:要么改数据库的编码,要么改环境变量。这个就要看情况了,如果数据库不允许修改,则只能修改环境变量,下面说说如何查看数据库编码和环境变量的解码方式。

oracle编码方式查询:

select * from v$nls_parameters a WHERE a.PARAMETER='NLS_CHARACTERSET';

1 NLS_CHARACTERSET WE8ISO8859P1

环境变量解码方式查询:

我的电脑-》右键-》属性-》高级系统设置-》高级-》环境变量-》系统变量-》变量(列)-》看下有没有叫做“NLS_LANG”的,有的话,看下值是啥,因为我没有配置过,所以我这没有,但是应该是这样的

NLS_LANG:AMERICAN_AMERICA.WE8ISO8859P1

我的情况是这样的,我的数据库编码是:WE8ISO8859P1,这个数据库不是我本地的所以我不能修改数据库编码,我只能修改环境变量。于是我把“NLS_LANG”的值改成了“AMERICAN_AMERICA.WE8ISO8859P1”,搞定了。

其实网上还有人说要改注册表,但是我没有修改,而且我发现我注册表中根本没有oracle的项。

好了就说到这把。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值