修改 oracle 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
1. 发现问题
安装好Oracle 11g后从别的地方导入数据想测试一下,结果发现中文都变成了“?”号。
然后一查:
自己装的
select userenv('language') from dual;
——SIMPLIFIED CHINESE_CHINA.AL32UTF8
别人装的
select userenv('language') from dual;
——SIMPLIFIED CHINESE_CHINA.ZHS16GBK
字符集不一样。。。
2. 查找资料:
修改 oracle xe 默认中文字符集成为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
http://wtdyb.blog.163.com/blog/static/1803533022011424105524321/
linux oracle 字符集 .
http://blog.csdn.net/mzwang123/article/details/6712441
3. 实施
[oracle@QL ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 30 08:58:28 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> connect sys as sysdba
Enter password:
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 633341984 bytes
Database Buffers 192937984 bytes
Redo Buffers 6606848 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 ;
Database altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 633341984 bytes
Database Buffers 192937984 bytes
Redo Buffers 6606848 bytes
Database mounted.
Database opened.
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
4.结果
字符集是一致了,但是之前导入的数据中所有中文都变成了乱码。只好创建一个新用户重新导入了一遍数据。
但是应用到WEB应用后,登录WEB应用系统后发现星期三还是wednesday。
看来还需要深入了解才行。