plsql中文乱码显示问号的解决办法

时间:2023-03-09 07:42:07
plsql中文乱码显示问号的解决办法

问题现象:

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

解决办法:

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

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

  plsql中文乱码显示问号的解决办法

注:(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。

  plsql中文乱码显示问号的解决办法

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

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

  plsql中文乱码显示问号的解决办法

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