oracle ORA-12899错误的解决方法

来源:互联网 发布:coding webhook php 编辑:程序博客网 时间:2024/06/05 09:12
出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到目标字符集为UTF-8的库里,所以会出现ORA-12899
其实只要修改一下ORACLE 的字符集就可以很好的解决这个问题;
 
以dba的身份进行操作,不是dba的话在执行修改命令的时候会提示你权限不足.
开始-->运行-->cmd,之后输入:"sqlplus sys/oracle@192.168.0.1/orcl as SYSDBA"
如果不能正常进入,那就需要你手动输入用户名和密码,进入之后会出现
"SQL>"的提示,
按照下面给出的命令依次执行就可以了,
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 ZHS16GBK ;
ALTER DATABASE CHARACTER SET ZHS16GBK
*ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

报字符集不兼容,此时下INTERNAL_USE指令不对字符集超集进行检查:

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP


这时候,这个ORA-12899就已经彻底解决了,就可以进行数据的导入了...

原创粉丝点击