【问题标题】:SSIS Data Flow UpdateSSIS 数据流更新
【发布时间】:2010-12-02 20:16:26
【问题描述】:

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

概述

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

流程

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

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

接近

我将 OLEDB 数据源用于付款 (SQL Server) 和查找值 (Oracle),然后使用合并联接(左外)将数据附加到付款。使用 Merge Join 结果的条件拆分,我将匹配查找数据的付款向下传递到 OLEDB Destination。

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

【问题讨论】:

    标签: ssis dataflowtask


    【解决方案1】:

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

    【讨论】:

    • 是的。基于集合的方法是要走的路。我想知道您是否可以将失败的插入合并到另一个多播流中并删除失败,以便它们永远不会插入到临时表中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多