一、oracle server 端 字符集查询
select userenv('language') from dual
其中NLS_CHARACTERSET 为server端字符集
NLS_LANGUAGE 为 server端字符显示形式
二、查询oracle client端的字符集
$echo $NLS_LANG
如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。
三、server端字符集修改
更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK)
开始 - 运行 - 输入cmd 进入命令提示符
输入 sqlplus /nolog
以管理员身份登录sqlplus
sql> conn /
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;
sql> shutdown immediate;
sql> startup;
四、修改pl/sql developer 的编码
在windows中创 建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer。其它字符集设置同上