1

我正在尝试导入使用 EXPDP 命令创建的数据库转储 {Oracle XE 11g (11.2.0.2.0)}。以下是我用来导入的命令。

impdp vnp/vnp directory=MY_DATA_PUMP_DIR dumpfile=EXPDP_DUMP_26_01_2018.DMP remap_schema=VNP_ADMIN:VNP remap_tablespace=SYSTEM:USERS,DATA:USERS; 

当我运行此命令时,我收到很多包含相同原因的错误

ORA-00959: 表空间 'USERS;' 不存在

但是,当我从 dba_tablespaces 运行 select tablespace_name; 我看到 USERS 表空间存在。

SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS

在阅读了一些相关问题后,我发现它可能与用户 VNP 的权限有关,我也提供了权限。

SQL> alter user vnp quota unlimited on users;
User altered.

SQL> grant UNLIMITED TABLESPACE to vnp;
Grant succeeded.

当我尝试导入这个数据库转储时,我仍然遇到同样的错误。你能否指出我正确的方向,为什么会发生这种情况..?提前致谢。

4

1 回答 1

2

多么微不足道!

ORA-00959: tablespace 'USERS;' does not exist
                            ^
       tablespace doesn't really have a semi-colon as a part of its name, eh?

IMPDP 在操作系统命令提示符下运行。因此,它不需要(也不应该有)终止符(与 SQL 命令相反)。

此外,如果删除分号后它仍然不起作用,请尝试将 REMAP_TABLESPACE 一分为二:

remap_tablespace=SYSTEM:USERS remap_tablespace=DATA:USERS
于 2018-01-26T06:46:50.337 回答