SSIS读取平面文件标题列

问题描述 投票:2回答: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工具。

关于如何实现上述方案的任何想法?

谢谢

csv ssis etl flat-file ssis-2017
2个回答
1
投票

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

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.