OralcePlsql中⽂显⽰乱码问题⽆需修改注册表完美解决此⽅法在其它版系统也可以解决
win10-64
plsql
oracle 11g绿⾊版客户端
错误现象:
因为oracle⽤的是绿⾊版,⽆法设置注册表,尝试以下⽅法。
解决⽅法:
1、在plsql中查询oracle服务端默认语⾔
select*from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE'or t.PARAMETER ='NLS_CHARACTERSET';
-----------------------------------------------------------
plsql配置oracle主目录
select*from nls_session_parameters;
-----------------------------------------------------------
select*from nls_database_parameters;
这⾥的NLS_LANGUAGE=AMERICAN不会影响中⽂显⽰
-------------------------------------------------------------
常⽤语⾔字符查询SQL
select*from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE'or t.PARAMETER ='NLS_C
HARACTERSET';
select*from nls_session_parameters;
select*from nls_database_parameters;
select*from nls_instance_parameters;
2、在PLSQL Developer⽬录下新建⼀bat⽂件,内容如下:
@echo off
set path=D:\oracle\product\instantclient_11_2
set ORACLE_HOME=D:\oracle\product\instantclient_11_2
set TNS_ADMIN=D:\oracle\product\instantclient_11_2
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
运⾏bat⽂件时,打开plsql再次查询数据时正常。
但是遇到问题,从打开plsql时查询再次出现乱码问题。
分析:执⾏bat⽂件启动plsql时重新设置了数据库字符集。
最终解决⽅法:将bat⽂件中的设置全部添加到计算机的“系统变量”中。
验证
将上⾯bat⽂件中的设置添加到“系统变量”后,重新启动plsql查询出中⽂显⽰正常。
注意:bat⽂件中set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK与在plsql中查询oracle服务端默认语⾔是否⼀致。