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. C#DateTime.ToString 格式化时间字符串和数值类型转换为字符串

    我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34,如果要换成200606,06-2006,2006-6-6或更多的格式该怎么办呢?这里将要用到:Date ...

  2. 8086CPU的出栈(pop)和入栈(push) 都是以字为单位进行的

    8086CPU的出栈(pop)和入栈(push) 都是以字为单位进行的

  3. InfoPath读取数据库

    public void LoadBtn_Clicked(object sender, ClickedEventArgs e) { // 配置连接字符串 using (SqlConnection con ...

  4. 【linux命令】lscpu、etc/cpuinfo详解

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 i2000:~ # lscpu Architecture:          x86_ ...

  5. python-异常处理try_except

    异常处理try-except 在我们写程序的时候经常会遇到一些异常或错误,导致程序终止 当我们使用计算器时,用10除以0会提示 一个简单的错误代码(10/0) a = 10 / 0 print(&qu ...

  6. Hadoop 高可用(HA)的自动容灾配置

    参考链接 Hadoop 完全分布式安装 ZooKeeper 集群的安装部署 0. 说明 在 Hadoop 完全分布式安装 & ZooKeeper 集群的安装部署的基础之上进行 Hadoop 高 ...

  7. Linux之添加交换分区

    Linux下的交换分区我们可以随意改变大小,如果说日常生活中分区不够用,今天我们来举个例子如何添加. 1.首先是使用dd命令创建一个空文件,这个空文件的大小就是你要继续添加的swap的大小,比如我这里 ...

  8. 团队作业——Alpha冲刺 7/12

    团队作业--Alpha冲刺 冲刺任务安排 杨光海天 今日任务:将编辑界面与标题栏合并.与同队成员,讨论部分功能合并的问题. 明日任务:编辑界面与另一队员完成的字体设置弹窗合并. 郭剑南 今日任务:使用 ...

  9. PyQt5---ChangeIcon

    # -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...

  10. React阻止事件冒泡的正确打开方式

    需求:点击导航list按钮出现侧弹框,点击空白处弹框消失 问题:绑定空白处的点击事件到document上,但是非空白处的点击也会触发这个点击事件,在react中如何阻止事件冒泡? 解决方法:e.sto ...