gpt4 book ai didi

sql-server-2008 - 从数据流到变量的SSIS设置结果集

转载 作者:行者123 更新时间:2023-12-04 02:11:04 27 4
gpt4 key购买 nike

在我给自己做一些与压力有关的心脏病发作之前。

谁会知道如何完成看似简单的任务,即设置一个数据流任务的结果集(结果将为0或1)并将该值分配给变量。

我创建了变量ok。

结果集来自具有多个元素的XML文件。标志(0或1)是这些元素之一的结果,所以我还需要知道如何将结果集设为那个标志。

如果有人可以提供帮助,我将非常感激。

更新:我最终将结果(0,1)读回到SQL Server的标志表中。然后使用Execute SQL脚本从SQL Server读回它并读入变量。不确定这是否是最好的方法,但似乎可以解决问题。

最佳答案

您可以使用数据流脚本组件将数据流列值传输到SSIS变量。但是,在使用数据流脚本组件和SSIS变量时,必须遵循某些规则。

SSIS不允许您在处理行的脚本过程中为SSIS变量分配值。但是,您可以执行执行前和执行后的过程。

在脚本组件中,将SSIS变量添加到ReadWriteVariables属性。编辑脚本并在ScriptMain类中声明一个变量。使用PreExecute过程初始化变量。使用ProcessInputRow过程将输入-buffer列值分配给脚本变量。并且,使用PostExecute任务将值从脚本变量分配给SSIS变量。

这是一个示例VB脚本组件。它具有一个SSIS变量(MyOutVariable),该变量将获取脚本变量(MyVar)的输出。 MyVar变量从数据流的MyNumber列获取其值。

Public Class ScriptMain
Inherits UserComponent

Dim MyVar As Integer

Public Overrides Sub PreExecute()
MyBase.PreExecute()

'initialize variable local to data flow
MyVar = 0

End Sub

Public Overrides Sub PostExecute()
MyBase.PostExecute()

' output variable value to SSIS variable
Me.Variables.MyOutVariable = MyVar

End Sub

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)

' logic to get value
MyVar = Row.MyNumber

End Sub
End Class

关于sql-server-2008 - 从数据流到变量的SSIS设置结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923520/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com