Oracle-如果有记录,则更新;否则,在记录没有主键的地方插入

时间:2018-07-03 09:49:02

标签: oracle

数据大小为90亿条记录。 Oracle DB 12c

我正在从各个表中检索信息,并使用批量收集和forall语句-将插入到我的最终表中。

仅当该行不存在时才需要插入。如果该行已经存在于我的最终表中,则需要更新记录的时间戳。

批量收集记录具有:(示例用途。仅显示5列) 名,姓,地址,电话,技能集.....

我的最终表具有:(示例用途。仅显示5列) final_id,名字,姓氏,地址,电话,技能集.....

如何执行此操作?  据我所知,我不能使用MERGE,因为我的批量收集记录没有与最终表主键匹配的主键。由于我的数据量太大,因此我需要一个不会影响该操作性能的解决方案。

我已经阅读了有关生成哈希键的standard_hash(column1 || column2,'MD5')的信息,我可以对批量收集记录和最终表的列值进行比较。

我需要您的建议,这是执行此操作的最佳方法?我唯一要担心的是,因为它包含大量数据,因此不应该影响性能,并且我们每天必须通过一项工作来运行此过程。

0 个答案:

没有答案