首页 文章

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

提问于
浏览
2

我有多个平面文件(.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

    你可以通过添加一个 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 columns

  • -1

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

相关问题