首页 > 数据库技术 > 详细

ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899]

时间:2014-04-03 09:22:38      阅读:391      评论:0      收藏:0      [点我收藏+]

由于项目需要,我在搭建了新的开发环境后,需要将之前环境中的ORACLE数据库导出,再导入到新的开发环境下。当导出导入完成后,使用数据库进行添加操作时

发现针对很多表的添加操作报错,具体报错原因描述为:插入的值超出了字段长度。根据分析,导致整个报错提示的原因为之前的数据库字符集格式为:ZHS16GBK

而新建的数据库实例编码格式为UTF-8,这就导致中文在UTF-8下占三个字节,而在ZHS16GBK下占两个字节,所以如果你一个字段的长度设置刚好能报错一个中文字,

则在UTF-8字符集环境下的数据库中进性插入操作就会报错。具体解决方法:

借用了

http://blog.csdn.net/avinegar/article/details/8077967

这个作者的方法:

 

需要以SYS或者SYSTEM用户登录,否则操作权限不够。

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

ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899],布布扣,bubuko.com

ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899]

原文:http://www.cnblogs.com/luckybird/p/3641877.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!