表 1 有 5 列。表 2 具有相同的 5 列,另外还有一个不可为空的列。我想使用 datapump 将表 1 中的数据复制到表 2。在 Sql Server 中,我可以使用 bcp 并指定要在导出时使用的查询,其中我可以从表中“选择 *,'新数据'” 1. 这具有在我导入时将字符串“新数据”放入表 2 中的新列的效果。
我将如何使用 Oracle 的 Datapump 完成此任务?根据我的阅读,我只能指定一个 WHERE 子句,这意味着我不能将“新数据”添加到我的新列中。
到目前为止,我想出的唯一想法是禁用表 2 中新列的非空约束,从表 1 中对数据进行数据泵送,然后更新所有行以将“新数据”添加到新列中。这是我唯一的选择吗?
只需将您的数据导入到目标数据库的临时表中。然后编写一个 SQL 语句,将暂存表中的行复制到目标表中,同时为这两个新列提供一个显式值。所以像这样;
以下语法应该适用于 11g
然后,简单地做这样的事情;
之后,您可以删除临时表。