使用 oracle imp 跳过一个表的插入

使用 oracle imp 跳过一个表的插入

我正在做一个 oracle imp,在转储中有一个大表,我只想创建它,但不想在其中插入行。

这可能吗 ?

Exp 是在 10.2.0.4 上完成的。我正在 XE (10.2.0.1) 上进行 imp。

答案1

您使用的是经典的导出和导入实用程序吗?还是新的 DataPump 版本?从您提到的“exp”和“imp”,而不是“expdp”和“impdp”,我推测您使用的是经典版本,而不是 DataPump 版本。如果是这样,那您的选择就会大大减少。

在传统的导出和导入实用程序中,ROWS=N 参数适用于所有表。因此,没有单个命令行用于“将所有数据导入除一个表之外的所有表”。但是,您可以执行一系列导入

  • 第一次导入时使用 ROWS=N,以便导入所有表的结构但不导入任何数据。
  • <<list of all other tables>>使用 ROWS=Y 和 TABLES=( )进行第二次导入

DBA_TABLES由于您已经完成了第一次导入,因此您只需查询(或ALL_TABLESUSER_TABLES)数据字典视图即可生成第二次导入的表列表。

答案2

当然如此。

“imp” 有一个“ROWS”参数用于此目的。如果您在命令行中设置 ROWS=N,导入将跳过数据插入。

编辑:它将跳过所有表的行。如果您只想跳过一个表的行,我认为您必须分两个不同的步骤进行导入。一个步骤仅用于导入此特定表,另一个步骤用于导入其他表。

相关内容