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

Execute SQL Task 如何返回结果数据集的更多相关文章

  1. Execute Sql Task 的Result DataSet如何返回

    Execute Sql Task的Result DataSet 主要有以下四种,当Execute Sql Task返回结果之后,需要使用SSIS Variable 来接收数据. 例子中使用的数据表代码 ...

  2. 微软BI 之SSIS 系列 - Execute SQL Task 中的 Single Row 与 Full Result Set 的处理技巧

    开篇介绍 Execute SQL Task 这个控件在微软BI ETL 项目中使用的频率还是非常高的,也是大部分入门 SSIS 初学者最早接触到的几个控制流控件. 我们通常使用 Execute SQL ...

  3. Execute SQL Task 参数和变量的映射

    Execute SQL Task能够执行带参数的SQL查询语句或存储过程(SP),通过SSIS的变量(Variable)对参数赋值.对于不同的Connection Manager,在Task中需要使用 ...

  4. SSIS Execute SQL Task 用法

    Execute Sql Task组件是一个非常有用的Control Flow Task,可以直接执行SQL语句,例如,可以执行数据更新命令(update,delete,insert),也可以执行sel ...

  5. [转]SSIS Execute SQL Task : Mapping Parameters And Result Sets

    本文转自:http://www.programmersedge.com/post/2013/03/05/ssis-execute-sql-task-mapping-parameters-and-res ...

  6. [转]Working with Parameters and Return Codes in the Execute SQL Task

    本文转自:http://msdn.microsoft.com/zh-cn/magazine/cc280502(en-us,SQL.100).aspx SQL statements and stored ...

  7. mysql procedure返回多数据集

    返回多数据集写法:第一种 DROP PROCEDURE IF EXISTS `p_query_user` ; DELIMITER // CREATE PROCEDURE p_query_user( p ...

  8. python MySQL执行SQL查询结果返回字典

    写自动化测试的时候我希望执行数据库前置任务,把数据库查询的结果作为请求的参数,但是正常返回结果为列表嵌套里面,这样就会影响到关键字准确的获取,特别的受限于SQL的查询字段的的顺序,所以希望返回的单条数 ...

  9. 18.Django原生SQL语句查询返回字典

    在django中执行自定义语句的时候,返回的结果是一个tuple ,并我不是我所期望的dict.当结果是tuple 时,如果要取得数据,必须知道对应数据在结果集中的序号,用序号的方式去得到值. 如果是 ...

随机推荐

  1. 为notifyIcon.icon属性赋图片

    System.Drawing.Bitmap bp; bp = new Bitmap(Application.StartupPath + @"\image\" + MeiYeShuo ...

  2. css+div页面布局

    div标签是html页面中用于分组的块元素,是专门用于元素布局的标签. 标签的级别: 1.行级标签:可设置大小,但一行只能容下一个行级标签(默认宽度==页面宽度,默认高度==填充高度) 2.块级标签: ...

  3. Jboss7或者wildfly部署war包的问题

    如果在Jboss7或者wildfly中部署war包是遇到类似如下错误: "{"JBAS014671: Failed services" => {"jbos ...

  4. 在IE中,JS方法名和input的name重名时,调用该方法无效

    在IE中,JS方法名和input的name重名时,调用该方法无效.提示:网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1 ...

  5. 类Unix上5个最佳开源备份工具 Bacula/Amanda/Backupninja/Backuppc/UrBackup

    当为一个企业选择备份工具的时候,你都考虑什么呢? 确定你正在部署的软件具有下面的特性 开源软件 – 你务必要选择那些源码可以免费获得,并且可以修改的软件.确信可以恢复你的数据,即使是软件供应商/项目停 ...

  6. jquery.validate,错误信息位置

    好长时间没有用jquery.validate.js这个插件了,忘得差不多了.唉,好东西还是要经常拿出来看看的,今天用jquery.validate来做一个小东西,遇到一个问题,就是错误提示信息的位置问 ...

  7. windows中VirtualBox调整扩大VMDK格式的磁盘空间

    今日为了学习(zhuangX),在家中电脑上安装了VirtualBox的虚拟机,为了兼容性,选择了VMDK磁盘格式,想起办公室的电脑,在系统配置完成后,一直提示磁盘空间不足,尴尬了,重新装?环境啥的都 ...

  8. idea 断点上面有x

    背景:确定你的java代码没有问题,并且编译通过 问题:debug 启动项目的时候没有问题,idea打断点的时候左边红色断点上面有x 原因:java文件和class文件不一致, 解决方法:ant cl ...

  9. 用LinkedList

      >用LinkedList模拟栈集合MyStack >MyStack测试类   用LinkedList模拟栈集合MyStack import java.util.LinkedList; ...

  10. div中文本水平居中,垂直居中

    div: text-align=center; hight=100px; line-hight=100px;(行高需要和高度设置成一样)