SSIS Passing Parameters to an ADO .NET Source query;向ado.net数据源传递参数。

Posted 江湖人称于老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS Passing Parameters to an ADO .NET Source query;向ado.net数据源传递参数。相关的知识,希望对你有一定的参考价值。

使用SSIS的oledb数据源时的参数按钮如下图: 

但是在使用ADO.NET源连接到mysql时,没有这个参数按钮,如何向数据流的sql command传递参数呢?

 

steps:

1. 在 控制流 选项卡上,在包含ado.net源的 data flow task上右键选择属性->设置 Expressions。

2.属性表达式编辑器中设置如下:

 

属性:选择 ADO.NET源.SQLCommand,注意,ADO.NET源是 ado.net源的名称,如果您变更过组件名称,则这里是您自定义的名称.sqlcommand。

表达式:点击后边的按钮,填写你的sql语句以及从变量和参数传递过来的值,即 本例子中的  @[User::PV_WaterMarkValue],然后点击计算表达式按钮:

说明:使用了字符串拼接的方式,注意“”及‘’。

我这里的例子是:

"select    cast(date_format(orderdate,\'%Y%m%d\') as signed) as datekey,`order`.*, branchoffice.BranchOfficeName  from `order` inner join branchoffice on `order`.BranchOfficeSN=branchoffice.BranchOfficeSN where `order`.orderdate >\'"+  @[User::PV_WaterMarkValue]+"\'"

这样,Data flow task中的ado.net源就得到了从Get Water Mark中返回的值。

 

顺便演示下,Get Water Mark中的值是如何返回的:

1.定义变量

2.给变量赋值

 3. 设置结果集

 

 

以上是关于SSIS Passing Parameters to an ADO .NET Source query;向ado.net数据源传递参数。的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp迁移工具报错implode(): Passing glue string after array is deprecated. Swap the parameters

SSIS Parameter用法

SSIS教程:创建简单的ETL包 -- 6. 对项目部署模型使用参数(Using Parameters with the Project Deployment Model)

从 T-SQL 运行 SSIS 包

在 SSIS 数据源 T-SQL 中使用 WHERE ValX> ValY 时,结果包括 ValX = ValY 的列

打字稿仅从重载中选择特定方法(要传递给Parameters<T>)