用pl/sql developer 导入.sql文件时出现中文字段显示乱码问题
原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的。
一、查看和修改oracle数据库字符集:
select userenv('language') from dual;
查询结果:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
--修改oracle数据库字符集:(在SQL Plus中)
sql> conn / as sysdba;
sql> shutdown immediate;
数据库已经关闭 (database closed)
已经卸载数据库 (database dismounted.)
ORACLE例程已经关闭 (oracle instance shut down.)
sql> startup mount;
ORACLE例程已经启动 (oracle instance started.)
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 239079112 bytes
Database Buffers 289406976 bytes
Redo Buffers 5791744 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 utf8;
数据库已更改(database altered.)
sql> shutdown immediate;
数据库已经关闭 (database closed)
已经卸载数据库 (database dismounted.)
ORACLE例程已经关闭 (oracle instance shut down.)
sql> startup;
ORACLE例程已经启动 (oracle instance started.)
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 239079112 bytes
Database Buffers 289406976 bytes
Redo Buffers 5791744 bytes
数据库装载完毕 (database mounted.)
数据库已经打开
二、修改pl/sql developer 的编码格式:
在windows中创 建一个名为“NLS_LANG”的系统环境变量,设置其值为“AMERICAN_AMERICA.UTF8”,
然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。如果想转换为gbk字符集,可以赋予“NLS_LANG”为 “SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer。其它字符集设置同上