情况介绍:
1. 本机没有安装oracle。
2. 本机通过plsql连接远程oracle服务器
问题:
使用plsql执行insert (xxx1,xxx2) select xxx1,xxx2 from dual,发现select ‘产生’ from dual,出现的结果是乱码;
(原谅我懒得恢复错误设置,截图错误效果了)
解决方案:
方案1. 新增环境变量
NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8"
然后重启plsql
方案2:在plsql安装路径下新建bat文件,内容为
set NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8"
PLSQLDev.exe
完成后执行该bat文件,即可打开plsql
以上两种方案,重启plsq后,都可以正常查询中文了。
原理分析:
出现中文乱码的原因是,oracle的字符集与本地plsql的字符集不同导致的。
查询oracle的字符集:
select userenv('language') from dual;
因此我们只需要设置本机plsql的字符集与oracle的字符集一致即可。
设置后查询如下:
成功显示中文!