数据库字符集修改时报错ORA-12712: new character set must be a superset of old character set


今天在导入公司一个业务系统dmp文件的时候报错imp00017,将数据库字符集强制修改了改成 ZHS16GBK,但是其他业务系统显示都成乱码了。没办法改成AL32UTF8。但是遇到ora12712错误。参考了一些文档暂时解决了问题。
SQL> select * from nls_database_parameters where parameter in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');
PARAMETER
------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_LANGUAGE
AMERICAN
NLS_TERRITORY
AMERICA
NLS_CHARACTERSET
ZHS16GBK
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1.6602E+10 bytes
Fixed Size 2269752 bytes
Variable Size 8959036872 bytes
Database Buffers 7616856064 bytes
Redo Buffers 23928832 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 AL32UTF8;
ALTER DATABASE CHARACTER SET AL32UTF8
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
SQL> ALTER DATABASE CHARACTER SET utf8
2 ;
ALTER DATABASE CHARACTER SET utf8
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
Database altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 1.6602E+10 bytes
Fixed Size 2269752 bytes
Variable Size 8959036872 bytes
Database Buffers 7616856064 bytes
Redo Buffers 23928832 bytes
Database mounted.
Database opened.
根据报错,提示新字符集必须是老字符集的超集。于是使用了强制转换,问题解决。
INTERNAL_USE是没有写在文档中的参数,用于强制完成字符集转化
alter database character set internal_use &charset;
alter database national character set internal_use &ncharset;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值