持续の动力
The Growth Of Trees

问题现象:

   PLSQL执行sql语句,不识别中文,输出的中文标题显示成问号????。

解决办法:

  1、 登陆plsql,执行sql语句,输出的中文标题显示成问号????;条件包含中文,则无数据输出;查询出的内容含有中文显示成????。

  2、输入sql语句select * from V$NLS_PARAMETERS t WHERE t.PARAMETER='NLS_LANGUAGE'查看字符集,查看value值是否为简体中文。

  

      注:(1)通过alter system set nls_language='AMERICAN' scope=spfile; 可以更改nls_database_parameters和nls_instance_parameters的nls_language

            (2)通过alter session set nls_language='SIMPLIFIED CHINESE'; 可以更改nls_session_parameters的nls_language

  3、进入注册表,依次单击HKEY_LOCAL_MACHINE --->SOFTWARE ---> ORACLE--->home(小编安装的是Oracle 11g,这里显示成KEY_OraDb11g_home1),找到NLS_LANG,查看数值数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

  

  4、如果以上设置都没有问题,那就要查看下环境变量的设置,查看是否有变量NLS_LANG,没有则新建该变量。

  5、新建变量,设置变量名:NLS_LANG,变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,确定即可。

  

  6、重新登录plsql,执行sql语句,OK,乱码问题解决。

posted on 2015-04-08 11:33  持续の动力  阅读(2129)  评论(0编辑  收藏  举报