日期:2014-05-16  浏览次数:20541 次

oracle 查看、修改字符集编码
oracle 查看、修改字符集编码

      ALTER DATABASE CHARACTER SET ZHS16GBK;
     出现了error 
     ORA-12712: new character set must be a superset of old character set 

    method :ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

写道
SQL> conn /as sysdba 
Connected. 
SQL> shutdown immediate; 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
SQL> startup mount 
ORACLE instance started. 

Total System Global Area  236000356 bytes 
Fixed Size                   451684 bytes 
Variable Size             201326592 bytes 
Database Buffers           33554432 bytes 
Redo Buffers                 667648 bytes 
Database mounted. 
SQL> ALTER SESSION SET SQL_TRACE=TRUE;//语句跟踪 
System altered. 
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 ZHS16GBK; 
ALTER DATABASE CHARACTER SET ZHS16GBK 

ERROR at line 1: 
ORA-12712: new character set must be a superset of old character set 


 
 
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: 
 
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
 
Database altered. 
 
SQL> select * from v$nls_parameters; 
 
PARAMETER                                                        VALUE 
---------------------------- --------------- 
NLS_LANGUAGE                                                     AMERICAN 
NLS_TERRITORY                                                    AMERICA 
NLS_CURRENCY                                                     $ 
NLS_ISO_CURRENCY