同花顺
Oracle的dmp文件导入不进去,怎么办?
吃口药,不要慌。
对症下药,药到病除
都知道,看到报错,就看日志,它我们的指路明灯。
但是有的报错是没有日志的,比如:
PL/SQL导入数据时,黑窗口一闪而过。
这是因为你没有配置Oracle的环境变量,如下就好了。
立起沉疴,效如桴鼓
查看日志,对症下药,立起沉疴,效如桴鼓。
正常情况下,你本地的Oracle,在本地随便你怎么导入导出都不会报错。
在别的电脑上,导入时就会报错,这种报错的原因无非就是下边几种。
···························································································
1、dmp文件中有新的表空间及用户,你要导入的电脑中Oracle库中没有。
dmp文件在创建表时,指定了表空间,但是表空间不在。给用户授权时,没有用户,就报错了。
通过查看日志,看哪些东西是本地不存在的,创建即可。
2、你的dmp文件导出方式是什么
如果你使用的是普通的exp导出方式,那么只能使用普通的imp导入方式进行导入。数据泵的导入导出仅支持数据泵的导入导出。imp与exp,impdp与expdp成双成对的使用。
3、导入导出命令报错:unknown command beginning “exp SCOTT/…” - rest of line ignored.
这种报错是由于你在可视化界面,执行导入导出命令导致的,直接cmd运行命令就可以了,不需要进入oracle里面。
4、权限问题
比如整库导出,使用full参数,需要具备DBA权限。使用owner参数导出别的用户数据,也需要具备DBA权限。
5、命令行有问题。
比如导出时,full参数和owner参数不可以共存,导入时,full参数和fromUser/toUser不可以共存。
6、高低版本问题。IMP-00010:不是有效的导出文件,头部验证失败。
方法一:修改头部信息。(不推荐,有可能导致数据丢失)
查看本地Oracle版本:select *from v$version
最好的方法是,你导出一下scott用户,然后打开看一下头部信息,然后复制粘贴。
方法二:替换imp.exe文件与exp.exe文件。(推荐,最有效)
官网:
moving data between different releases of the Oracle database server, the following basic rules apply:
The Import utility and the database to which data is being imported (the target database) must be the same version.
The version of the Export utility must be equal to the lowest version of the source or target database.
For example, to create an export file for an import into a higher release database, use a version of the Export utility that is equal to the source database. Conversely, to create an export file for an import into a lower release database, use a version of the Export utility that is equal to the version of the target database.
翻译:
在Oracle数据库服务器的不同版本之间移动数据时,应遵循以下基本规则:
导入实用程序和要导入数据的数据库(目标数据库)必须是同一版本。
导出实用程序的版本必须等于源或目标数据库的最低版本。
例如,要为导入到更高版本的数据库创建导出文件,请使用与源数据库相同的导出实用程序版本。相反,要为导入到较低版本数据库创建导出文件,请使用与目标数据库版本相同的导出实用程序版本。
即:
站在导出方的立场上:
看你的文件给谁用。
你的dmp文件要用于高版本的Oracle,那么你直接导出就好了。因为Oracle支持低版本导入高版本。
你的dmp文件要用于低版本的Oracle,请使用低版本Oracle的exp.exe可执行文件。
站在导入方的立场上:
你导不进去,换一个高版本(与dmp文件一致)的imp.exe工具,必须保证版本一致。
因为Oracle不支持高版本导入到低版本。
总结一下:一般这种高低版本报错出现于高版本文件导入低版本数据库,所以我们导出的时候,尽量使用低版本的,方便他人。