IMP-00003: 遇到 ORACLE 错误 959 ORA-00959: 表空间 '' 不存在

描述

在使用imp命令将dmp文件导入oracle中时,遇到如下错误:

IMP-00003: 遇到 ORACLE 错误 959 
ORA-00959: 表空间 'TBS_CDUSER' 不存在

IMP命令如下:

IMP cduser/cduser123@orcl file=D:cduser20190417_owner.dmp full=y;

我想将备份文件导入cduser用户下,结果,有些表可导入成功,有些表不能成功,出现如上错误,请看下图:

使用下面的SQL来查询cduser用户的默认表空间:

select username,default_tablespace from dba_users where username='CDUSER';

可以看默认表空间不是TBS_CDUSER

解决方法

第一种方法

创建表空间TBS_CDUSER,SQL如下:

CREATE TABLESPACE TBS_CDUSER LOGGING DATAFILE 'H:apporadataorclTBS_CDUSER.dbf' SIZE 256M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;

然后再导入,看看是否能成功。

如果第一种方法不行,使用第2种方法。

第二种方法

删除用户cduser及用户的表空间

--删除user
drop user cduser cascade;
--删除tablespace
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

重新创建表空间TBS_CDUSER,用户cduser并设置默认表空间为TBS_CDUSER,然后再导入

详细过程这里就不详细写了,可以移步到我的另一篇文章查询详细过程:

使用imp命令和exp命令对oracle数据库进行导入导出操作,链接地址:https://www.cnblogs.com/codecat/p/10723389.html

原文地址:https://www.cnblogs.com/codecat/p/10796100.html