2

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

所以,我有一个看起来像这样的平面文件

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

...我需要将这些数据存储到以下格式的表中

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. 如何读取平面文件的标题/列?2.是否可以旋转#1的结果

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

关于如何实现上述场景的任何想法?

谢谢

4

2 回答 2

1

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

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

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

以下答案(不同的情况,但它们很有帮助)将为您提供一些见解:

于 2019-03-06T05:42:26.060 回答
0

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

于 2019-03-06T06:34:23.063 回答