SSIS:条件拆分结果到变量

SSIS: Conditional Split result to variable

我有一个条件,我需要将基于条件(将只是一个 int 值)的条件拆分结果提供给变量。有人可以帮助如何做到这一点吗?

我的实际包(数据流):

XML Source --> Conditional split (基于条件)2 个输出..一个基于条件的结果(将只是一个 int 值)需要将其传递给变量。如何做到这一点?

纯 SSIS 方式 - 将数据流消耗到 Recordset Destination 中,然后使用 ForEach 循环遍历它,为所需变量赋值。

我知道有两种实现方法。

第一:用C#脚本组件来做,这是最简单的方法。 只需在你的条件拆分后面放置一个脚本组件,select 你的变量为 "ReadWrite",然后像代码中那样设置它:

Dts.Variables["yourvariable"].Value = Input0Buffer.Yourcolumn

我现在无法访问 SSIS,所以我无法为您提供确切的代码,但这应该可以帮助您入门。

第二:写入 table 并使用执行 SQL 任务读回。我不太喜欢这种方式 ;-)

你必须使用脚本组件来实现:

  • 创建脚本组件(选择目标类型

  • 双击脚本组件并选择您的变量作为 ReadWrite 变量。 (在我的示例中,变量名为 Result

  • 在脚本里面window写入如下代码

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    
        If Not Row.inColumn_IsNull Then
            Variables.Result = Row.inColumn
        End If
    
    End Sub
    

旁注:变量值在 dataflowtask 执行完成之前不会更改,要使用新值,您必须在另一个 dataflowtask[=36= 中继续工作]