【问题标题】:SSIS variable lookup of existing subfolders by name按名称查找现有子文件夹的 SSIS 变量
【发布时间】:2017-11-06 15:43:13
【问题描述】:

我已将文件系统任务添加到 SSIS 包,目的是根据采购订单号在 24 个现有目录子文件夹中创建 7 个新子文件夹。

第一个名为 MainFolderPath 的变量指向现有和新子文件夹所在的主系统。此外,我创建了一个名为 FolderName 的变量,它使用 PO # 创建一个子文件夹,然后在 PO # 子文件夹中创建 7 个新子文件夹。

我正在努力的部分是创建一个 var,它将同时在 24 个现有子文件夹中的每个子文件夹中创建 PO 和 7 个新子文件夹。 下面是我的例子:

Var 1:var.MainFolderPath 类型 - 字符串

\\10.xxx.xx.xxx\sales\subsystem

Var 3:var.FolderName 类型 - 字符串

+ [@User::var_PurchaseOrder] + "1. Estimates" + "2. Approval" + "3. Legal"  + "Processing" + "5. Fulfilment" + "6. Shipping" + "7. Billing"

子系统中有 24 个现有子文件夹,例如引擎、轮胎、电气等。缺少的 var 按名称为 var.PurchaseOrder 查找那些现有的子文件夹,以创建新的 PO # 文件夹和 7 个新的子文件夹。

我希望这个结构是有意义的,如果我能帮我完成这项工作,我将不胜感激。

【问题讨论】:

  • 你只做一次吗?如果是这种情况,将其全部写在批处理脚本中并运行批处理脚本会更简单

标签: variables ssis name-lookup


【解决方案1】:

我会将文件夹的名称存储在 SQL Server 表中,然后使用执行 SQL 任务将它们选择到对象变量中(将 ResultSet 设置为“完整结果集”,然后将结果集映射到对象变量 [将结果名称设置为“0”])。 (您实际上是将单列结果集放入对象变量中。)

然后,您可以使用 Foreach 循环使用 Foreach ADO 枚举器迭代此集合,将每个结果映射到字符串变量,然后可以将其作为创建目录路径的一部分。

然后只需将创建目录的文件系统任务添加到循环中。

我不确定这是否是您所需要的全部内容,因为您还提到了 24 个子目录,但是这种设计模式将能够处理这方面的任何复杂程度,例如,您最终可能会得到另一个 Loop(用于 24 个子目录)中的一个 Loop(用于 7 个文件夹)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2019-05-28
    • 1970-01-01
    • 2013-03-19
    • 2012-05-07
    相关资源
    最近更新 更多