带函数的 SSIS 参数

Posted

技术标签:

【中文标题】带函数的 SSIS 参数【英文标题】:SSIS Parameters With Functions 【发布时间】:2017-03-29 20:47:58 【问题描述】:

我已经对此进行了大量搜索,但未能提出可靠的解决方案。我有一个用例,例如我想在文件名中包含日期,假设我使用以下公式:

"EmployeeCount_"+(DT_STR,4,1252)DATEPART( "yyyy" , getdate() )+ RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" , getdate() ), 2)  + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" , getdate() ), 2) +".csv"

这作为一个变量非常有用,但是如果我想将此函数作为参数从 SSMS 传递怎么办?有没有办法将参数作为表达式进行评估?我试图将参数传递给变量以达到预期的效果,但不可用。

我在这里遗漏了什么,还是应该将其硬编码为变量/在其他地方计算并将其从表中拉入 SSIS?

【问题讨论】:

【参考方案1】:

如果您想从数据库函数中检索值并将其存储在变量中,您可以使用执行 SQL 任务。

您可以将变量与其他变量中的表达式以及脚本结合起来。在哪里执行计算是您的选择。

【讨论】:

【参考方案2】:
    首先,您必须创建 2 个变量 p_Date,类型为 DateTimeFilename,类型为 String

    在属性选项卡中为变量Filename 设置EvaluateAsExpressions = True 并使用以下表达式

    "EmployeeCount_"+(DT_STR,4,1252)DATEPART( "yyyy" , @[User::p_Date]  )+ RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" ,  @[User::p_Date]  ), 2)  + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" ,  @[User::p_Date] ), 2) +".csv"
    

    添加Execute SQL TaskResultSetproperty 设置为Single Row 填写SqlCommandConnection属性

    转到ResultSet选项卡,添加一个新的结果集,如下图所示

注意:上图中的0表示您提供的sql命令中的列索引

【讨论】:

以上是关于带函数的 SSIS 参数的主要内容,如果未能解决你的问题,请参考以下文章

声明带参数的函数

JavaScript&jQuery.带参数的函数

如何定义带参数或不带参数调用的函数? [复制]

什么是不带参数调用的函数?

shell 自定义带参数函数

JavaScript--关于实例对象带不带参数和构造函数带不带参数的关系