我有多个平面文件(.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 回答
你可以通过添加一个
Flat File Connection Manager
只添加一个数据类型为DT_WSTR
且长度为4000
(假设它的名称为Column0
)的列来完成此操作在
dataflow task
之后添加Script Component
Flat File Source
在标记
Column0
中作为输入列并添加6个输出列(id, name, age, address, country, email)
在
Input0_ProcessInputRow
方法中拆分此列并将值分配给输出列 . (您可以编写您想要的逻辑)您可以在以下问题中阅读答案以获得示例:Reading CSV file some missing columnsFlat File Source
不支持动态文件格式,您必须使用多个源来加载这些文件 .