概述
原文链接:http://blog.sina.com.cn/s/blog_69a657190101642s.html
高版本导入低版本(向下兼容问题)
当dmp文件是oracle11G导出来,你本机的客户端oracle为10G时,导入数据库不会成功。
原因:高版本的数据库文件无法向下兼容。
解决方法:用Madedit编辑器打开dmp文件,把dmp头部关于数据库版本的信息改为你本机10G的数据库信息即可,更改完毕保存。再次执行导入,成功。
低版本导入高版本(字符集问题)
错误信息大概是下面这样的
IMP-00019: 由于 ORACLE 错误 12899 而拒绝行
IMP-00003: 遇到 ORACLE 错误 12899
ORA-12899: 列 "JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大 (实际值: 21, 最大值: 20)
从10g环境下exp出来的数据,imp到11g数据库的时候就出现这个错误。
原因:两个版本的数据库的字符集不同,所以会有这种情况
解决方案:修改oracle 11g的字符集为:ZHS16GBK
以下为sqlplus命令操作。
查看服务器端字符集SQL (查询结果的带有character_set这种关键字的就是了)
select * from V$NLS_PARAMETERS
下面的都是在cmd下操作
sqlplus /nolog
SQL>conn / as sysdba
若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命令关闭数据库服务器,
然后执行以下命令:
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
ERROR at line 1:ORA-12721: operation cannot execute when other sessions are active
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
再次使用导入,问题解决
imp导入
基本命令为
imp 用户名/口令@实例(默认为orcl) file=文件路径(不要有中文) full=y
最后
以上就是安详发夹为你收集整理的2个oracle文件导入报错处理高版本导入低版本(向下兼容问题)低版本导入高版本(字符集问题)imp导入的全部内容,希望文章能够帮你解决2个oracle文件导入报错处理高版本导入低版本(向下兼容问题)低版本导入高版本(字符集问题)imp导入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复