【问题标题】:SSIS Parameters With Functions带函数的 SSIS 参数
【发布时间】: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?

【问题讨论】:

    标签: sql sql-server parameters ssis etl


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      1. 首先,您必须创建 2 个变量 p_Date,类型为 DateTimeFilename,类型为 String
      2. 在属性选项卡中为变量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"
        

      1. 添加Execute SQL Task
      2. ResultSetproperty 设置为Single Row
      3. 填写SqlCommandConnection属性

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-02
        • 2011-08-07
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多