我有多个平面文件(.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实现这一目标?
答案 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
不支持动态文件格式,您必须使用多个源来加载这些文件。