SSIS应用中,为了方便从数据源抽取数据,经常将OLE DB Source的SQL命令引入参数,本文主要记述在SQL命令中如何执行常参数的存储过程。

新建一个SSIS包PackageTest.dtsx,相关操作步骤如下:

1、新建数据流任务

在SSIS工具箱中拖入名为【数据流任务】的控件,然后右键-“编辑”该控件;

2、在数据流中添加OLE DB Source

从SSIS工具箱加入【OLE DB Source】控件,然后右键-“编辑”该控件,设置好OLE DB 连接管理器(OLE DB Connection Manager),数据访问模式(Data access mode)选择【SQL命令】(SQL Command),用于执行存储过程;

3、添加SQL命令文本

实际开发中,此处SQL命令文本为带参数的存储过程,执行语句为:EXEC [dbo].[Pro_GetWalletId] @DbName = 'WalletDB',将该语句写入【SQL命令文本】中,注意将参数及其赋值替换为?,最终变为:EXEC [dbo].[Pro_GetWalletId] ?,另外需要注意:

  1. 若存储过程有多个参数,则用,?分开,且?的数量与参数的数量保持一致;
  2. 在存储过程的开头添加以下两句:
    SET FMTONLY OFF;
    SET NOCOUNT ON;

至于要添加上述两句的原因,后面将会撰文叙述,最终如下图所示:
OLE DB Source Editor

4、配置SQL命令输入参数

上图中,?代表要输入参数,即该存储过程需要配置1个参数,点击【参数...】,打开参数设置,添加1个输入参数,注意在参数映射中(如下图),参数名称一定要与存储过程中定义的参数名称相同变量选择已经定义好的变量(该变量已通过其它方式赋值),参数方向选择“Input”(输入),即需要传入到存储过程中。

QueryParameters.png

除此以外,对于多参数,参数添加的顺序也要与存储过程中的定义相同,否则无法对应,或者在存储过程的语句把参数名加上。

空非易文章均为原创,转载请以链接形式注明本文地址

本文地址:http://pengzhiyong.com/archives/ssis-oledb-source-using-parameters.html

作者:空非易 | 标签: , , | 浏览:970