数据流SSIS - 公共目标表,不同结构的平面文件

时间:2017-04-14 16:03:35

标签: sql-server csv ssis

我有多个平面文件(.csv)作为文件夹中的源。每个文件都有不同数量的列,这些列可能与其他文件交叉也可能不交叉。但是,任何源文件中的所有列始终存在于包含所有这些列的超集的目标表中。

我的要求是遍历每个文件,并将该文件中可用的列动态映射到目标表(csv文件的标题名称与表中的列名匹配)。

Structure of File 1:
id, name, age, email

Structure of File 2:
id, name, age, address, country

Structure of File 3:
id, name, age, address

Structure of Destination Table:
id, name, age, address, country, email

我想为所有列填充表格,其中包含可用内容的数据,以及NULL表示不适用于每条记录的内容。如何使用SSIS实现这一目标?

2 个答案:

答案 0 :(得分:0)

您可以添加一个Flat File Connection Manager,只添加一个数据类型为DT_WSTR且长度为4000 的列(假设其名称为{{ 1}})

  • Column0之后dataflow task
  • 添加Script Component
  • 在标记Flat File Source中作为输入列并添加6个输出列 Column0
  • (id, name, age, address, country, email)方法中拆分此列并将值分配给输出列。 (您可以编写您想要的逻辑)您可以通过以下问题阅读答案以获得示例:Reading CSV file some missing columns

答案 1 :(得分:-1)

Flat File Source不支持动态文件格式,您必须使用多个源来加载这些文件。