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: 有值了,且编码和蓝色框中对应上了,基本就没问题了.

微信扫码订阅
UP更新不错过~
关注
  • 5
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

Dorr.

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值