问题:查询的表中有中文数据,全部显示为?
解决途径1:修改注册表以及环境变量(改系统变量!不要只改用户变量)
解决途径2:
1、查看oracle的字符编码
SQL> select * from v$nls_parameters;:
得到的信息是该客户端,也就是本机PLSQL的编码,和实际数据库没有关系,具体参照
Oracle v$nls_parameters 和 nls_database_parameters 区别_石工记的博客-CSDN博客_v$nls_parametersOracle v$nls_parameters 和 nls_database_parameters 区别https://blog.csdn.net/swebin/article/details/78394174图省事,直接扒了另一台中文显示正常的机器参照修改。
打开帮助,查阅PLSQL说明书【Developer user‘s guide】,第219页。
执行SQL语句,注意这个是改当前对话,关闭该对话后又会和系统变量【环境变量】中的nls_lang一致
alter session set nls_language = 'SIMPLIIFIED CHINESE';
alter session set nls_territory = 'CHINA';
再次查询两者一致了,只是¥还不能显示。(因为环境变量的系统变量没有nls_lang这一项,相当于底层没基础,上面应用改参数也没用。)
关于PLSQL无法正确显示中文_Bian_MCheng的博客-CSDN博客_plsql识别不了中文
增加了环境变量中的系统变量,重启之后OK
总结,改环境变量中的系统变量,其余都是隔靴搔痒。