记一次 PL/SQL Developer 上 Oracle导入的错误 ORA-01435: 用户不存在
程序员文章站
2022-05-11 13:50:07
...
错误信息
今天,同事跟我说他通过PL/SQL Developer导入*.dmp
备份文件报错。
然后发给了我日志:
Import started on 2018/4/4 15:07:13
C:\oracle\product\10.2.0\client_1\BIN\imp.exe log=C:\Users\AppData\Local\Temp\plsimp.log file=C:\Users\Desktop\数据库备份.dmp userid=exam180325/aaa@qq.com buffer=30720 commit=no full=yes grants=yes ignore=yes indexes=yes rows=yes show=no constraints=yes
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
警告: 这些对象由 SYS 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 exam180325
. 正在将 TEST 的对象导入到 TEST
"ALTER SESSION SET CURRENT_SCHEMA= "TEST""
IMP-00003: 遇到 ORACLE 错误 1435
ORA-01435: 用户不存在
IMP-00000: 未成功终止导入
Import finished on 2018/4/4 15:07:13
错误分析
当时在忙其他事情,所以没有多想。
只是百度了一下‘ORA-01435: 用户不存在’的解决方法。
可能因为搜索关键词不太恰当,折腾了一会儿并没有解决问题。
于是,我决定认真的再读一遍错误日志,终于发现了问题所在:
. 正在将 TEST 的对象导入到 TEST
...
ORA-01435: 用户不存在
已知这个数据库备份.dmp是由TEST用户导出的;现在要将数据库备份.dmp导入到当前库exam180325库中。
日志却显示的从TEST用户导入到TEST对象。
本地库又没有TEST用户。
所以报错。
解决方法
这里提供3中解决方法,任取一种即可。
1.在PL/SQL Developer导入功能中设置用户信息
报错时,导入窗口是这样的:
可以看出,配置中并没有设置 从用户 和 到用户 的信息。
进行如下修改:
再次导入,问题解决。
2.通过脚本导出
编写imp.bat脚本进行命令导出:
C:\oracle\product\10.2.0\client_1\BIN\imp.exe log=C:\Users\Desktop\数据库备份imp.log file=C:\Users\Desktop\数据库备份.dmp userid=exam180325/aaa@qq.com full=y ignore=y fromuser=TEST touser=exam180325
注意其中的用户设置:fromuser=TEST touser=exam180325
执行imp.bat,问题解决。
3.本地库添加用户
在本地库中,添加并授权新用户:TEST
再次导入,问题解决。