【问题标题】:leveraging environment variables in SSIS process tasks在 SSIS 进程任务中利用环境变量
【发布时间】:2016-10-13 00:18:07
【问题描述】:

我正在使用 7z 压缩 SSIS 中的一些文件:

这可行,但我需要将日期放在 zip 中。所以我尝试了这个:

在命令行中,这很完美。在 SSIS 中,它崩溃了。这告诉我 SSIS 在调用命令变量时遇到问题。我怎样才能得到那个日期?这是我正在寻找的当前日期(执行日期)。

谢谢。

【问题讨论】:

  • 你可以使用表达式将日期放在名称中而不使用%DATE... 命令变量吗?
  • 你能告诉我怎么做吗?

标签: windows ssis ssis-2012


【解决方案1】:

这将取决于您要为字符串使用的格式,但您向 SSIS 组件添加动态元素的方式是通过每个项目属性中的 Expressions 组。随你Execute Process Task 转型选择:

  1. 在属性中单击“表达式”框(该框将为空),然后单击右侧显示的... 图标。
  2. 点击Property 下拉菜单并选择参数。
  3. 点击... 图标。
  4. 输入您的表达式,点击Evaluate Expression检查它是否有效。
  5. 就是这样!在所有内容上单击 OK 并尝试运行您的包。

您可以在整个互联网上获得有关如何构建该表达式的帮助。如果你只需要yyyy-mm-dd,那么left((DT_WSTR,50)getdate(),10)就是你需要的日期部分,你可以填写其余部分。

请记住,某些字符需要在其前面加上\,因为它们具有特殊含义并且需要转义。因此,如果您想返回 \\server\share,您的表达式将是 "\\\\server\\share" 等。


只是补充一下,您似乎正在以dd-mm-yyyy 格式将日期添加到文件名中?我建议不要这样做,因为它会导致美国和英国系统之间的混淆,并且当您将 yyyy-mm-dd Score Backup.zip 作为您的文件名时,它们将在 Windows 资源管理器中正确排序,而对于 dd-mm-yyyy,每个月第一天的所有文件都将位于顶部,无论月份或年份。

【讨论】:

  • 我同意你的观点,但系统无法国际化。这是一个仅限美国的房地产地图系统,所有其他日期字段都是这种方式。非常感谢。我会在几个小时内尝试这个解决方案。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多