加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2008 – SSIS将结果集从数据流设置为变量

发布时间:2020-12-12 08:42:18 所属栏目:MsSql教程 来源:网络整理
导读:之前我给自己一些压力相关的心脏病发作. 有人会知道如何完成一个简单的任务,即设置一个数据流任务的结果集(结果将是0或1),并将该值分配给一个变量. 我创建了变量ok. 结果集来自具有多个元素的XML文件.标志(0或1)是这些元素之一的结果,所以我还需要知道如何使
之前我给自己一些压力相关的心脏病发作.

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

我创建了变量ok.

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

如果有人能帮助我真的很感激.

更新:我最终将结果(0,1)读回到SQL Server到一个标志表中.然后使用执行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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读