【问题标题】:SSIS: variable expression using time in two placesSSIS:在两个地方使用时间的变量表达式
【发布时间】:2016-01-12 22:14:51
【问题描述】:

我有一个变量表达式,它附加了一些日期部分以在两个单独的任务中用作文件名。

但是到第二个任务命中时,时间已经改变,变量也随之改变。基本上,我在文件夹中创建一个文件用于 FTP 导出。但是当 FTP 任务去拾取它时,它“不存在”,因为自最初创建文件和 FTP 任务试图拾取它以来时间已经改变。

平面文件 name 和 FTP LocalPath 都使用变量“FilePath”,即:

"C:\\WFSDEV_WSD_SHIP_FROM_STORE_" + (DT_WSTR,4)DATEPART("yyyy",GetDate()) + 
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) + 
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART()),2) +
".VD01"

有没有办法在包的开头设置这个 var 并从那里原封不动地使用它?

【问题讨论】:

    标签: ssis


    【解决方案1】:

    不要使用GETDATE(),因为每次检查时都会对其进行评估。

    相反,选择一个在 SSIS 包期间保持不变但在包开始时更新的值。我的偏好是@[System::StartTime],但有些人可能更喜欢@[System::ContainerStartTime] 前者在包开始执行时设置,另一个在每个容器内重置(ForEach 循环等)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 2013-01-08
      • 1970-01-01
      相关资源
      最近更新 更多