原来我用的oracle10g 一个汉字占三个字节,想修改成占两个字节,一查才知道是字符集的原因,
select userenv('language') from demo; -- demo是表名
结果为:
SIMPLIFIED CHINESE_CHINA.AL32UTF8
所以要修改字符集。
修改为 ZHS16GBK
如果直接修改:alter database character set ZHS16GBK
则会出现如下错误:
alter database character set ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集
所以采用下面的方法修改字符集:
以DBA身份进入SQLPLUS
SQL> sqlplus sys/sys as sysdba;
……
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter system set aq_tm_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use ZHS16GBK;(AL32UTF8)
SQL> shutdown immediate;
SQL> startup;
本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a> 原文链接:http://www.soidc.net/articles/1213781343264/20091019/1215945666391_1.html