用imp命令导入数据表时出现了
IMP-00013: 只有 DBA 才能导入由其它 DBA 导出的文件
IMP-00000: 未成功终止导入的错误,在网上找了一些解决方案,现找到一种解决方案,分享如下:
imp时连接用户没有DBA权限或者default role不是DBA
你可以换个DBA role的用户IMP。 如果你还想用这个用户,如果这个用户没DBA权限就grant dba to 用户; 如果default role不是DBA,那就 alter user 用户 default role DBA; grant dba to scott 续:如果创建完权限还想再移除权限,参照下面Oracle创建用户密码/授权/移除权限Oracle创建用户/密码并授权(1) 创建用户Create user 用户名 identified by 密码;(如果是数字则要加双引号”111111”,如果是字母就不用)(2) 授权给某个用户Grant connect,resource to 用户名;(只有用户有了connect 和 resource后才能操作其他表)(3) 授DBA 权限Grant dba to 用户名;(4) 给用户创建会话的权限:grant create session to DB_USER (3) 授DBA 权限Grant dba to 用户名;(4)撤权: revoke 权限... from 用户名;(5)删除用户: drop user username cascade (cascade 保证彻底删除) 当exp 导出的用户拥有dba的角色,但imp导入的用户不拥有dba的角色时,在imp导入是会出现上面的错误。如果exp导出的用户用到Oracle数据库的系统表空间,导入的用户没有dba的角色,也会报上面的错误。可以在exp导出之前,回收用户dba的角色 revoke dba from user。再exp导出数据。这样导入数据则不会报错。或者把dba角色赋予给imp导入的用户。grant dba to user 在导入dmp文件时报以下错误:IMP-00010: 不是有效的导出文件, 头部验证失败IMP-00000: 未成功终止导入在网上查两种方法,我是通过第二方法1.imp/exp的版本不对,也就是说低版本的导出,可以用高版本的导入,但高版本导出不能用低版本的导入,这个版本不只是指imp/exp的版本,也是指数据库的版本2.可能你在用ftp download时未设置binary的传输方式,导致文件损坏
用UltraEdit-32或notepad++打开dmp文件可看到版本信息,dmp文件的信息如下:
XPORT:V10.02.01
从中可以看出其版本是10.02.01
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件IMP-00000: 未成功终止导入imp时连接用户没有DBA权限或者default role不是DBA 你可以换个DBA role的用户IMP。 如果你还想用这个用户,如果这个用户没DBA权限就grant dba to 用户; 如果default role不是DBA,那就 alter user 用户 default role DBA; grant dba to scott 如果用dba权限,但不是默认也会报这个错误。更改默认设置:alter user BOC_RDM default role dba;恢复原来设置(这是我本机,参照人员请注意alter user BOC_RDM default role none;------------------------以下为imp的一些选项-----------------------------------------------imp file=for_rwa.dmp fromuser=RRMS01 touser=boc_rdm tables=for_rwa ignore=y -- 考imp数据1. imp file=d:test.dmp tables=tablename indexfile=t.idx2. 打开t.idx将REM去掉并手工更改为目标表空间,并保存文件3. 执行t.idx (在sqlplus下 @t.idx )4. imp boc_rdm/boc file=rwa20120508.dmp fromuser=EXIMTRX touser=boc_rdm tables=FAEF_INV_LOAN ignore=y