【问题标题】:Handling files with different structure For each Loop SSIS为每个 Loop SSIS 处理具有不同结构的文件
【发布时间】:2014-04-14 11:52:35
【问题描述】:

一个目录中有3个文件,其中两个具有相同的结构,第三个文件末尾有3个额外的列。

file 1: columna,....,columnz 
file 2: columna,....,columnz 
file 3: columna,....,columnz,Column1,Column2,column3

是否可以在 for each 循环容器中使用单个连接导入所有这些文件? 如果平面文件连接连接是基于文件3.

【问题讨论】:

    标签: sql-server ssis ssis-2012 ssis-2008


    【解决方案1】:

    不,这在 SSIS 中是不可能的。使用为文件 3 设计的平面文件连接会损坏从文件 1 和 2 加载的数据。

    我将为不同的布局构建 2 个平面文件连接,然后在 For Each 循环容器中,我将为这两个布局构建 2 个数据流任务。我将使用表达式禁用数据流任务,以便仅对每个文件执行适当的数据流任务。

    【讨论】:

    • 我没有抓住最后一段,请您详细说明(我会使用表达式禁用数据流任务,以便仅对每个文件执行适当的数据流任务)
    • 我会使用表达式在数据流任务上设置禁用属性。这假设您有某种方法可以识别文件 1 与 2 和 3。文件 1 的 DFT 上的表达式可能为:SUBSTRING ( @[User::MyFileName] , 1 , 5 ) != "file 1:"
    【解决方案2】:

    唯一的方法是将每一行加载为一个 varchar 列,然后将其拆分。

    【讨论】:

      【解决方案3】:

      我只是遇到了同样的情况,我试图以类似的方式做到这一点。没有考虑在数据流中添加表达式。因此,我创建了 2 个包来处理由 1 个主包管理的单个文件结构。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 2019-06-10
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        相关资源
        最近更新 更多