我有条件将需要基于条件(仅为一个整型值)的条件分割结果提供给变量。有人可以帮助如何做到这一点?SSIS:将条件分割结果分配给变量
我的实际的包(数据流):
XML Source
- >Conditional split
(基于条件)基于条件2 outputs..one结果(将只是一个int值)需要它传递变量。如何实现这一目标?
我有条件将需要基于条件(仅为一个整型值)的条件分割结果提供给变量。有人可以帮助如何做到这一点?SSIS:将条件分割结果分配给变量
我的实际的包(数据流):
XML Source
- >Conditional split
(基于条件)基于条件2 outputs..one结果(将只是一个int值)需要它传递变量。如何实现这一目标?
纯粹的SSIS方式 - 将您的数据流用于Recordset Destination,然后使用ForEach循环遍历它,将值分配给所需的变量。
我知道两种方法来实现这一点。
首先:用C#脚本组件做这件事,这是最简单的方法。 只要把脚本组件您的条件拆分的背后,选择您的变量为“读写”,然后将其设置这样的代码:
Dts.Variables["yourvariable"].Value = Input0Buffer.Yourcolumn
我没有访问SSIS现在,这样我就可以” t给你确切的代码,但这应该让你开始。
第二:写入表并使用执行SQL任务读回。我真的不喜欢这种方式;-)
,你必须使用脚本组件来实现这一目标:
ReadWrite
变量。 (在我的例子变量命名为结果里面的脚本窗口中写入以下代码
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
If Not Row.inColumn_IsNull Then
Variables.Result = Row.inColumn
End If
End Sub
侧面说明:变量价值不ch在dataflowtask
执行完之前使用新值你必须继续在另一个工作dataflowtask
我相信没有必要遍历每一个,因为我的条件分割总是给出单个结果。我的观点是更新到SSIS我不知道如何将条件分割结果分配给变量。 –
@narendragc,您可以在ForEach循环定义中将您的第0列值赋予您所需的变量,并将循环序列留空。因此,循环将设置变量,唯一的缺点 - 变量将存储来自行集合的最后一个值。如果你只有一排 - 没关系。 – Ferdipux