我是靠谱客的博主 安详发夹,最近开发中收集的这篇文章主要介绍2个oracle文件导入报错处理高版本导入低版本(向下兼容问题)低版本导入高版本(字符集问题)imp导入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原文链接: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导入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部