今天在使用plsql查询数据时查询一条sql语句,执行后什么结果都没有,起先还以为是sql语句写错了,因为先前会知道要查的表不可能没有数据的,于是自己又去服务器上用sqlplus查了一下,语法是正常的,一直不知道什么原因,后面找了一下发现是在plsql中Oracle的客户端字符集和服务器上的不一样,造成的中文无法匹配,先去服务器上查一下Oracle使用的字符集
SQL> select * from v$nls_parameters where parameter like 'NLS_CH%';
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF8
很明显服务器上使用的字符集是AL32UTF8,自己个人电脑是使用Windows系统,这样DOS系统的默认字符集和Unix系统的默认字符集不一样,这样只能去电脑中改下Oracle的环境变量,还有最好要匹配服务端的字符语言也是NLS开头的变量,在这里就不做过多的赘述了,修改也很简单打开我的电脑里属性中的高级系统配置下的环境变量修改下
这样变量赋值保存后再重新打开plsql查询包含中文的sql语句就正常了