PLSQL中文显示乱码

发布时间 2023-09-25 11:08:17作者: 不会游泳的鱼~~

 

select * from nls_database_parameters;
select userenv('language') from dual     -- 查询客户端编码格式 AMERICAN_AMERICA.AL32UTF8

 

PLSQL中文显示乱码,可能是oracle客户端和服务器端的编码方式不一样。网上有很多帖子介绍解决方法,但都说得不清不楚的,这里我将自己经过实践和理解的真正的解决方案分享给大家。

 

在这里,我们使用的是服务器上的Oracle,不是本机的Oracle,按照以下两个步骤进行:首先要查询ORACLE服务器的语言、地域和字符集,然后将查询结果设置为本地的环境变量:NLS_LANG。具体如下:
1. 查询ORACLE服务器的语言、地域和字符集

select * from nls_database_parameters;

查询结果如下图,
下图NLS_LANGUAGE 表示“语言”,NLS_TERRITORY  表示“地域”,NLS_CHARACTSET 表示“字符集”,将他们三个按照“语言_地域.字符集”的格式拼接起来,就有了“AMERICAN_AMERICA.ZHS16GBK”(注意:这里要根据你自己的ORACLE服务器的这三个值进行拼接哦~不要简单的复制粘贴)

 

2.设置 本地环境变量:NLS_LANG,

进入 我的电脑,属性,高级,环境变量,添加1项:

 

  NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
(注意:这里要根据你的ORACLE服务器的这三个值进行拼接哦~不要复制粘贴)


OK,重新打开PLSQL dev  ,中文显示正常拉~~