PL/SQL远程连接ORACLE中文乱码解决

PL/SQL远程连接ORACLE中文乱码解决

这几天开始使用oracle,本人是win10操作系统,远程连接的虚拟机中xp系统的oracle10g,结果好不容易连接上了,又出现了乱码问题,照着网上的都试了就是没用,后来终于发现了原因所在.
以后还是要注意细节,避免走弯路.

问题

PL/SQL工具连接后,插入语句,中文显示???乱码

确定原因

①select userenv(‘language’) from dual;
先查询在这里插入图片描述
先查询数据库的字符集,

入图片描述
然后再查看注册表,将上图的属性修改为AMERICAN_AMERICA.ZHS16GBK

由于我是远程连接,所以我在我的虚拟机的xp系统中修改环境变量,添加系统变量
变量名:NLS_LANG 变量值:AMERICAN_AMERICA.ZHS16GBK

重启PL客户端.如果你看到之前的数据还是乱码,先编辑数据写上几个中文试试,保存之后如果又变成乱码那恭喜你失败了.

继续解决

在PL/SQL中的工具栏上点击帮助–点击最下面的支持信息info–翻到Character Sets

在这里插入图片描述如果发现你的NLS_LANG: 为空,那么你的PL并没有将编码应用到这里,或者红色与蓝色框框中内容不一致时你需要在sqlplus中设置编码.

设置编码

sql> conn / as sysdba;
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount;
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
system altered.
sql> alter database open;
database altered.
sql> alter database character set internal_use JA16SJIS ;
sql> shutdown immediate;
sql> startup;

注意,上面的删除线部分需要填写你在上面①中查询到的内容,的最后编码部分,如ZHS16GBK

最后,重启PL工具,还是进去这回可以先看看帮助中的注册信息,如果NLS_LANG: 有值了,且编码和蓝色框中对应上了,基本就没问题了.

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值