首页 > 解决方案 > 通过存储过程游标/循环从数据流任务 (DTS) 中获取行集

问题描述

我对 DTS/DTSX 有点陌生,但据我所知,我无法找到解决这个问题所需的确切解决方案。这个答案很接近但不完全:

SSIS:如何在数据流任务中运行存储过程

需要什么:目标文件任务在每次存储过程循环(光标)时写入一个文本文件并将新行集输出到临时表。为新传入行集删除的最后一个行集。整个操作是将一个巨大的文件拆分为多个可管理的文件。行集输出可以通过计数器更改,已经很好地工作了。

到目前为止:我已经在 Execute SQL 任务中存储了 proc 工作正常,它循环并加载所需的行集。问题是我无法让数据流 + 目标文件任务链在每个 proc 游标循环上写出文件,它只会写出 proc 中的最后一个行集。我认为在数据流任务周围放置一个 For-Each 任务包装器会起作用,但它是多余的,显然,For-Each 仍然等待存储的过程在执行 SQL 任务中完全完成,然后只写出最终的行集.

我基本上必须在每个游标循环上触发数据流/文件目标任务,或者以其他方式向数据流/文件目标任务发出信号以“查看”临时表中现在何时存在新行集,DF/FD 任务已清理文件写出后向上(删除)其先前的行集。

除了这个 loop-rowset-writeout 位之外,一切都按预期工作。任何想法表示赞赏,谢谢。

当前 DTS 封装布局

标签: sql-serverssis

解决方案


推荐阅读