pl/sql developer查询数据时出现乱码,主要检查如下:
1、检查服务器编码
sql
select * from v$nls_parameters;
sql
select * from nls_database_parameters;
sql
select userenv('language') from dual;
2、查看数据库可用字符集参数设置
sql
select * from v$nls_valid_values;
参照/home/oracle/.bash_profile 相关语言设置 系统环境变量加入
java
LANG=zh_CN.GBK
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3、重新连接sqlplus,查看数据
显示正常
4、pl/sql developer设置并重新连接
在pl/sql developer的菜单->tools->preferences->user interface->fonts 中修改为中文字体,重新连接,显示正常。
5、修改数据库的字符编码
如果你要更改数据库的字符编码,会比较麻烦, 强烈建议先备份(危险操作),这是一个好习惯哦~,先sql命令进入dba模式
sql
sql> conn user/password as sysdba;
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount;
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
system altered.
sql> alter database open;
database altered.
sql> alter database character set internal_use ZHS16GBK;
(可以设置: UTF8\AL32UTF8\ZHS16GBK ),注意跟上面的统一,全部统一UTF-8也是可以的
sql> shutdown immediate;
sql> startup;