Execute Sql Task 的Result DataSet如何返回

Execute Sql Task的Result DataSet 主要有以下四种,当Execute Sql Task返回结果之后,需要使用SSIS Variable 来接收数据。

例子中使用的数据表代码如下

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‘)

1,当Result Set是single row时,需要定义三个变量来接收数据,变量的DataType要和Column的DataType保持一致,并且在Result Set中指定返回的Column和接收的Variable之间的Mapping。在下游组件中,通过变量来引用Execute Sql Task的返回值。

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

Result Name是0,将结果集存储在Object的SSIS Variable中。

3,如何使用Object类型的变量,object类型的变量实际上是一个Dataset,每一行数据都要被提取出来,存放到变量中,才能被其他组件使用,所以必须定义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的数据,依次类推。

时间: 2024-10-30 09:03:20

Execute Sql Task 的Result DataSet如何返回的相关文章

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

开篇介绍 Execute SQL Task 这个控件在微软BI ETL 项目中使用的频率还是非常高的,也是大部分入门 SSIS 初学者最早接触到的几个控制流控件. 我们通常使用 Execute SQL Task 的场景包含但不止于以下几类: 在从源端加载数据到 Staging 表之前使用 Execute SQL Task 执行一些 Truncate 操作. 执行一些 Log 的插入,更新操作. ETL 过程中的 Merge 语句操作. XML 的输出处理. 关于如何使用 Execute SQL

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

本文转自:http://www.programmersedge.com/post/2013/03/05/ssis-execute-sql-task-mapping-parameters-and-result-sets.aspx#.U18_6PmSxBk A very common scenario in an ETL process is one in which you need to call out to some configuration tables to figure out so

Execute Sql Task的ExecValueVariable 用法

ExecValueVariable属性指定一个变量,接收Task的ExecutionValue,在下游组件中可以引用该变量. Set the name of the custom variable that receives the execution result for the task. The default value of this property is none, which indicates that the result is not set to a variable i

SSIS Execute SQL Task 用法

Execute Sql Task组件是一个非常有用的Control Flow Task,可以直接执行SQL语句,例如,可以执行数据更新命令(update,delete,insert),也可以执行select查询语句,返回结果集,结果集可以是一行,也可以是多行. 一,General 选项卡 1,返回结果集(Result Set) None:表示不返回结果,在执行Update,delete或insert命令时,使用该选项: Single row:返回单行结果,可以在Result Set 选项卡中,将

Execute SQL Task 参数和变量的映射

Execute SQL Task能够执行带参数的SQL查询语句或存储过程(SP),通过SSIS的变量(Variable)对参数赋值.对于不同的Connection Manager,在Task中需要使用不同的符号(Parameter marker)来标记一个参数,并且在Parameter Mapping中设置参数名字(Parameter Name). 在Execute SQL Task Editor中,设置Parameter Mapping的界面如下: Variable Name:变量的名字,变量

Execute Sql Task 执行有参数的存储过程

Execute Sql Task 执行有参数的存储过程时,传递参数的方式是不同的,根据使用链接的不同,主要分为两种:OleDB和Ado.Net. create dbo.test (id int) CREATE PROCEDURE dbo.usp_AddItem @id int AS BEGIN SET NOCOUNT ON; insert into dbo.test(id) values(@id) END 1,如果ConnectionType是Oledb,那么使用?代表参数名字,?的序号是从0,

006_SSIS execute sql task 调用存储过程

1.首先在SqlServer中创建存储过程: if OBJECT_ID('usp_t013_inset_process_log') is not null drop procedure usp_t013_inset_process_log go create procedure usp_t013_inset_process_log @execution_id varchar(50), @package_name varchar(50), @machine_name varchar(50), @i

spark结构化数据处理:Spark SQL、DataFrame和Dataset

本文讲解Spark的结构化数据处理,主要包括:Spark SQL.DataFrame.Dataset以及Spark SQL服务等相关内容.本文主要讲解Spark 1.6.x的结构化数据处理相关东东,但因Spark发展迅速(本文的写作时值Spark 1.6.2发布之际,并且Spark 2.0的预览版本也已发布许久),因此请随时关注Spark SQL官方文档以了解最新信息. 文中使用Scala对Spark SQL进行讲解,并且代码大多都能在spark-shell中运行,关于这点请知晓. 概述 相比于

EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值

一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为  -1 ,sqlserver 里面  还没有测试过 using (var ctx = new MyDbContext()) { ctx.Database.ExecuteSqlCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1"); } 二 : Database.SqlQuery<T>   EF5执行sql查询语句