zoukankan      html  css  js  c++  java
  • Execute SQL Task 第二篇:返回结果集

    Execute SQL Task 第一篇:用法简介

    Execute SQL Task 第二篇:返回结果集

    Execute SQL Task 第三篇:参数和变量的映射

    Execute SQL Task的Result Set 主要有四种类型:None、Single row、Full result set和 XML。当Result Set不是None时,Execute SQL Task会返回查询语句执行的结果,在SSIS中需要使用变量(Variable )来接收数据。

    本文使用OLE DB的连接管理器和SQL Server数据库来做演示,本博客的例子使用的数据表代码如下:

    create table dbo.test
    (
    code int,
    name varchar(10),
    txt Nvarchar(10)
    )
    
    insert into dbo.test(code,name,txt)
    values(1,'a',N'b'),(2,'c',N'd'),(3,'e',N'f'),(4,'g',N'h')

    一,单行的结果集

    当Result Set是single row时,需要定义三个变量来接收数据,变量的DataType要和Column的DataType保持一致或兼容,由于变量的类型和SQL Server的数据类型不尽相同,应该小心设置,使变量的类型和结果字段的类型相容。

    并且在Result Set中指定返回的Column和接收的Variable之间的Mapping。在下游组件中,通过变量来引用Execute SQLTask的返回值。

    二,全部结果集

    当Result Set是Full Result Set时,返回的结果集使用0来代替其名称,返回的结果集存储在一个 Object类型的变量中,这个 Object 类型的变量在内部以集合的形式存在并保存整个查询结果集。

    在Result Set选项卡中,把rowset和Object变量绑定到一起,必须把Result Name设置为0,把结果集映射为Object类型的Variable。

    如何使用Object类型的变量?

    Object类型的变量实际上是一个Dataset,要读取Object类型的变量,需要使用Foreach Loop容器,逐行把数据提取出来,存储到变量中,才能被其他组件使用,所以必须定义SSIS Variable 来保存数据。

    在Foreach Loop 容器组件中,Enumerator选择Foreach ado enumator,在Ado Object Source Variable列表中选择User::VarObj。

    创建三个变量来存放数据,变量的数据类型要和object中的column的数据类型保持一致,否则ssis 会报错。

    在Variable Mappings中设置Ojbect的Column和变量的Mapping,index=0,表示的是object的第一个column,使用User::VarCode来存放第一个column的数据,依次类推。

    参考文档:

    Execute SQL Task

  • 相关阅读:
    织梦网站底部的Power by DedeCms怎么去掉?
    在线文档预览
    Hyper-v网络配置
    office web apps部署(二)
    iOS 学习资料整理
    office web apps部署(一)
    cdr格式文件抠图
    iframe载入等待
    Vcl.FileCtrl.SelectDirectory
    Function Pointer in Delpni
  • 原文地址:https://www.cnblogs.com/ljhdo/p/4528309.html
Copyright © 2011-2022 走看看