日期:2014-05-16  浏览次数:21173 次

PL/SQL中出现中文时,查询结果为空
使用PL/SQL成功连接Oracle数据库后,进行数据查询,当查询语句中不含中文时(如:select t.*, t.rowid from cldjs_cb03 t where 字段名称 like '32';),结果正确;但是当语句含有中文时(如:select t.*, t.rowid from cldjs_cb03 t where 字段名称 like '不分品级';),数据库中有数据但是查询结果为空,怎么办???
------解决方案--------------------
可能是你安装数据库时选择数据库数据字符集的问题,你看一下你的数据库的字符集
select userenv('language') from DUAL;
------解决方案--------------------
是由于在本机的oracle环境变量没有设置,在机器上设置对应环境变量即可:
NLS_LANG设置为:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
详见图片
------解决方案--------------------
like '%不分品级%' 试试
------解决方案--------------------
像楼上所说你用like而未指定通配符,字段名称 like '不分品级' 就跟 字段名称 = '不分品级'一样的结果。所以你必须先确认数据、
------解决方案--------------------
顶三楼,三楼90%是对的!请确认你的数据以及你的like写法
------解决方案--------------------
怎么没有人结贴
------解决方案--------------------
select t.*, t.rowid from cldjs_cb03 t where 字段名称 like '%不分品级%';
------解决方案--------------------
先看一下数据库的字符集是否可以正确保存中文字符。

select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';

------解决方案--------------------
很大可能就是你like后面的写法有问题,加通配符‘%%’才使得like函数有意思