从Oracle转储文件重新导入特定表

时间:2014-01-20 10:01:57

标签: database oracle import

我使用linux ssh中的以下命令将完整的oracle转储文件导入到我的数据库模式中。

    impdp system/password directory=bckup schemas=sch101 dumpfile=sc101.dmp    remap_schema=sch101:MY_SCHEMA TABLE_EXISTS_ACTION=APPEND;

此命令必须将表导入到目标模式中,但由于某些约束错误而跳过了某些表。 我想在逐个修复问题后尝试将这些表导入我的数据库。我使用了以下命令,

    impdp system/password DIRECTORY=bckup TABLES=TBL_NAME DUMPFILE=sch101.dmp remap_schema=sch101:MY_SCHEMA TABLE_EXISTS_ACTION=APPEND;

但是这个命令会给我发错误:

    ORA-39002: invalid operation
    ORA-39166: Object SYSTEM.TBL_NAME was not found.

我在我使用的转储文件的导出日志文件中检查了我尝试导入的表的名称,它们存在于转储文件中。 我在这里做的那个愚蠢的错误是什么?

1 个答案:

答案 0 :(得分:2)

因为您从可能是完整(非架构)导出的导入为system,所以您需要在tables parameter中指定架构名称,尽管存在schema参数:

... TABLES=sch101.TBL_NAME ...

您收到的错误消息是指SYSTEM.TBL_NAME,这显然(或希望无论如何)不是您想要的。