SSIS 读取平面文件 header 列

SSIS reading flatfile header column

你们能帮我(指出正确的方向)我如何在 SSIS 中实现以下目标吗?

所以,我有一个如下所示的平面文件

    ColumnA  ColumnB  ColumnC  ColumnD  ColumnN
    1        x        APPLE    Random1  MoreRandomData1
    2        y        ORANGE   Random2  MoreRandomData2
    3        z        OTHER    Random3  MoreRandomData3

...我需要将这些数据存储到 table 中,格式如下

ColumnA, ColumnB, BigBlurColumn
1        x        ColumnC:APPLE, ColumnD:Random1, ColumnN:MoreRandomData1
2        y        ColumnC:ORANGE, ColumnD:Random2, ColumnN:MoreRandomData2
3        z        ColumnC:OTHER, ColumnD:Random3, ColumnN:MoreRandomData3

这是我的问题:
1. 如何读取平面文件的 header/column? 2. 是否可以旋转#1

的结果

如果我能够同时操纵#1 和#2,那么在 SSIS 中重置对我来说将相当容易,显然我可以编写这些脚本,但是我的客户坚持使用 SSIS,因为这是标准的 ETL 工具。

关于如何实现上述场景有什么想法吗?

谢谢

在平面文件连接管理器中,取消选中 First row contains header 选项。然后转到“高级”选项卡,删除所有列并保留一个并将其长度更改为 4000。

在数据流任务中,添加一个拆分每一行的脚本组件,并且:

  1. 从第一行开始读取第 headers 列
  2. 在所有剩余行中生成所需的输出列

以下答案(不同情况但很有帮助)会给你一些见解:

尝试将数据转储到分段 table,然后使用 STRINGAGG() 函数将数据连接成您想要的格式并将其移动到目标 table。