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= 中继续工作]
我有一个条件,我需要将基于条件(将只是一个 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= 中继续工作]