初次装好PL/SQL,查询
1,
select * from basecar

--查询出来的结果中文全部为?
2,
select * from basecar where truck_number='京AS888'
--肯定是有数据的,但查不到,只要有中文就查不到
百度的结果是数据库服务器端和客户端字符集不一致导致的。
查询服务器端的字符集
select userenv('language') from dual;
select * from v$nls_parameters where parameter='NLS_CHARACTERSET';


最重要的就是就是这个
ZHS16GBK
客户端的字符集,我在注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_home1)中也没找到NLS_LANG,就当它与服务器端不一样吧。

问题解决方法:
1,设置环境变量,
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
2,重启PL/SQL,上面两个SQL查询就正常了。
但是还有其他问题...
项目需要,
在windows服务中调用SQL查询,查询条件有中文,查不到数据,直接执行exe应用程序却可以查到数据,想不明白为什么...
不明白也要继续,在注册表中创建字符串值NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

然后服务sql查询就正常了。
所以,简单、一步到位的做法就是在注册表中修改。
参考: