【问题标题】:How to traverse multiple folders & multiple files & dump data to SQL tables with same filename? SSIS如何遍历多个文件夹和多个文件并将数据转储到具有相同文件名的 SQL 表中? SSIS
【发布时间】:2017-12-13 17:12:13
【问题描述】:

这将是我之前问过here 的问题的一点更新。

我需要遍历文件夹并将 txt 文件转储到同名的 SQL 表中(除了 .txt 扩展名)

我的文件夹/文件结构如下图所示

现在 FileA,B,C 在所有文件夹中都是一致的,并且恰好有一个 [dbo].[FileA],[dbo].[FileB],[dbo].[FileC] 等位于服务器上.

所以 Data1 文件夹将有 FileA、FileB...FileZ & Data200 文件夹也是如此。

目标是遍历所有文件夹并获取文件并将它们转储到相应的 sql 表中。

在表格上的列数等方面没有差异。第一行不包含列标题。我不确定如何从 ssis 包中解析出这一方面。

之前的尝试导致了一个我无法解决的 VS_NEEDSNEWMETADATA 错误。

如果不是服务器部分,有没有办法在遍历所有文件夹后将所有 FileA 复制/移动到一个文件夹,将所有 FileB 复制/移动到另一个文件夹等

【问题讨论】:

    标签: sql-server ssis oledb etl flat-file


    【解决方案1】:

    对于每种文件类型,您必须有一个 ForEach 循环文件枚举器:

    1. 将数据流 A 任务包装在 foreach 循环中并设置为文件枚举
    2. 将文件夹设置为您的父源位置
    3. 检查遍历子文件夹
    4. 将搜索字符串设置为 FileA*.*
    5. 设置为完整文件路径
    6. 映射到名为 fnameA 的变量
    7. 在 ConnectionManagerA 上的表达式中使用 fnameA
    8. 确保延迟验证连接管理器

    此模式将处理所有文件 A。

    您需要重复 FileB 到 FileZ,因为它们将有不同的数据流。

    祝你好运!

    【讨论】:

      【解决方案2】:

      您可以使用与 Import multiple flat files to multiple SQL Tables 相同的步骤来实现它,但您需要在 foreach 循环容器中将 *.txt 更改为 FileA.txt(第 4 步)。并对每种文件类型重复此操作。 FileB.txt , FileC.txt , ...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多