【问题标题】:Move the PDF's from folders to a "not to be sent folder" in SSIS将 PDF 从文件夹移动到 SSIS 中的“不发送文件夹”
【发布时间】:2017-12-05 22:49:54
【问题描述】:

我有大约十几个文件夹,最多可包含 2500 个 PDF。我需要将 163 个 PDF 从 t-SQL 语句移出到 SSIS 中的“不发送”文件夹中。我已经有了 for each 循环容器和文件系统任务。我怎样才能只搜索/选择文件从我的 T-SQL 语句中移动?

注意:我的 T-SQL 语句中已经有了需要移动的文件名

【问题讨论】:

    标签: sql-server ssis etl


    【解决方案1】:

    在你的 foreach 循环容器中,我假设它正在枚举文件,在你的文件系统任务前面放置一个脚本任务。

    脚本任务将根据您的 T-SQL 结果检查当前文件名,方法是运行查询或根据包含结果的变量检查它。

    如果文件应该被移动,它将设置一个布尔变量为真或假,并且在导致文件系统任务的优先约束中,检查布尔变量的值。

    【讨论】:

      【解决方案2】:

      我想你可能会问,我如何在 SSIS 中使用 TSQL 语句及其结果。

      1. 创建变量文件名类型 ADO.Object
      2. 添加执行 SQL 任务
      3. 将您的 TSQL 添加到其中
      4. 将结果集更改为完整
      5. 将结果集映射到@filenames
      6. 为每个添加
      7. 枚举器是 Foreach ADO 枚举
      8. 将文件名设置为对象
      9. 将名为文件名的新变量类型字符串映射到索引 0
      10. 添加您的文件传输任务并使用文件名。

      *** 这假定文件名具有完整路径。

      【讨论】:

      • 感谢 Keith,完成了所有这些步骤,但我不断收到错误消息:“文件系统任务出错;@filename 变量用作源或目标,为空”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 2021-08-02
      • 2021-12-23
      • 1970-01-01
      相关资源
      最近更新 更多