imp 遇到ORA-12899错误,解决方法
2015-06-06 11:21
351 查看
在测试的过程中遇到的问题:
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: value too large for column
字符集问题:
源库192.168.216.172为oracle 9.2.0.6 ZHS16BGK,汉字在数据库存放的时候占用两个字节
目标库192.168.51.67为10.2.0.2 UTF8,汉字在数据库里存放的时候占用三个字节
由于字符集不同,导致现在数据库IMP的时候有些表的字段长度不够,出现ORA-12899: value too large for column的错误。
解决方法:
在51.67数据库上执行:
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
--设置INTERNAL_USE指令不对字符集超集进行检查:
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: value too large for column
字符集问题:
源库192.168.216.172为oracle 9.2.0.6 ZHS16BGK,汉字在数据库存放的时候占用两个字节
目标库192.168.51.67为10.2.0.2 UTF8,汉字在数据库里存放的时候占用三个字节
由于字符集不同,导致现在数据库IMP的时候有些表的字段长度不够,出现ORA-12899: value too large for column的错误。
解决方法:
在51.67数据库上执行:
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
--设置INTERNAL_USE指令不对字符集超集进行检查:
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
相关文章推荐
- UIView属性
- 数据库?:数据库安全
- 让Souce Insight支持多种语言的语法高亮:Python,Ruby,ARM汇编,windows脚本文件(bat/batch),PPC,SQL,TCL,Delphi等
- Tcp客户端并发登录
- 13 结构型模式-----代理模式
- win10预览版10134拒绝后续预览版推送方法
- 网狐平台游戏开发
- unity3D 旋转3D物体
- oracle多端口监听的配置
- [oc学习日记]NSDate
- Java MD5Util
- dedecms 织梦列表页标题增加显示页数
- Linux/Unix
- 如何提升你的能力?给年轻程序员的几条建议
- swing做的俄罗斯方块
- UVa第五章STL应用 习题((解题报告))详细!
- ASP.Net页面刷新后自动滚动到原来位置
- http://www.riemers.net/
- NGS项目三:ChiP-seq数据分析workflow
- IOS 中什么时候使用copy