Execute Sql Task 的Result DataSet如何返回

时间:2023-03-09 00:47:36
Execute Sql Task 的Result DataSet如何返回

Execute SQL Task 第一篇:用法简介

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

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

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

Execute Sql Task 的Result DataSet如何返回

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

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的返回值。

Execute Sql Task 的Result DataSet如何返回

Execute Sql Task 的Result DataSet如何返回

Execute Sql Task 的Result DataSet如何返回

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

Execute Sql Task 的Result DataSet如何返回

Execute Sql Task 的Result DataSet如何返回

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

Execute Sql Task 的Result DataSet如何返回

3,如何使用Object类型的变量,object类型的变量实际上是一个Dataset,每一行数据都要被提取出来,存放到变量中,才能被其他组件使用,所以必须定义SSIS Variable 来保存数据。

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

Execute Sql Task 的Result DataSet如何返回

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

Execute Sql Task 的Result DataSet如何返回

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

Execute Sql Task 的Result DataSet如何返回