如何为SSIS脚本组件传递多个输入

问题描述 投票:0回答:3

我有一个自定义源DataFlow组件,其O / P每次都不同,我需要将这些记录插入到Destination表中。

问题: - 无法在设计时为目标组件指定输入列..与实际每次调用DataFlow任务一样,源组件将根据表模式返回不同的O / P列。

需要的解决方案: - 如何在Destination DataFlow组件(任何现有组件或自定义组件)中没有任何映射的情况下接受任何可用的输入?

ssis custom-component dataflowtask
3个回答
0
投票

数据流的固定结构用于数据验证和优化目的。它的所有组件都将具有固定的输入和输出列。我建议以下几种可能性:

  • 为每个可能的模式编写数据流。可能存在有限数量的可能性。您可以通过使用可以为您生成包结构的BIML来减少此任务的工作量。这也可能引入并行加载的可能性。
  • 使用脚本任务而不是数据流。在脚本任务中,将每个输入的行写入表中。


0
投票

如果需要将多个输入传递给单个脚本组件,我知道这样做的唯一方法是将多个输入传递给UNION ALL组件,然后将单个输出从UNION ALL传递给脚本。

您必须考虑UNION ALL中两个列结构之间的任何差异,如果您需要一种简单的方法来识别行来自哪个原始输入,则可以使用派生列。


0
投票

我知道这已经晚了但是我一直看到这种UNION ALL方法,并且不喜欢它。

这种方法怎么样?

  1. 将两个数据流运行到它们自己的记录集目标中,并保存到ADO对象类型的变量中
  2. 创建新数据流并使用脚本源并引入两个ADO对象
  3. 使用适配器填充数据表,然后使用它们执行任何操作。
© www.soinside.com 2019 - 2024. All rights reserved.