2

我试图找出处理以下情况的最佳方法。

概述

付款会在一天中收集并存储在表 (SQL Server) 中。每天结束时,这些付款将被导出并插入另一个数据库 (Oracle)。成功插入 Oracle 数据库的付款将使用时间戳进行更新。

过程

第 1 步 - 每个支付记录都必须与 Oracle 数据库匹配,以确保支付记录引用的值存在于 Oracle 数据库中。满足此步骤的付款将向下移动。

第 2 步 - 付款被插入 Oracle 数据库,任何插入错误都被重定向到记录集。

方法

我将 OLEDB 数据源用于付款(SQL Server)和查找值(Oracle),然后使用 Merge Join(Left Outer)将数据附加到付款中。使用 Merge Join 结果的条件拆分,我将匹配查找数据的付款向下传递到 OLEDB 目标。

我需要更新原始付款表,仅包含将其放入插入的付款。使用条件拆分,我可以确定在步骤 1 中哪些行不匹配,并在最终插入的错误输出上重定向行,我可以确定哪些行在那里失败。但是,我没有看到确定已成功插入的付款的最佳方法以及更新原始表的最佳方法。

4

1 回答 1

1

我可能会将成功支付记录的 id 列表插入到原始数据库中的临时表中(使用多播 + OLE DB 目标),然后运行存储过程或使用 SQL 查询任务根据值更新原始表在临时表中。然后,您可以在完成后截断或删除临时表。

于 2010-12-03T17:44:40.417 回答