【发布时间】:2016-03-24 10:08:15
【问题描述】:
我必须处理一个语法如下的平面文件,每行一条记录。
<header>|<datagroup_1>|...|<datagroup_n>|[CR][LF]
标头具有永不更改的固定长度字段格式(ID、时间戳等)。但是,有不同类型的数据组,即使是固定长度,它们的字段数也会因数据组类型而异。数据组的前三个数字定义了它的类型。每条记录中的数据组数量也各不相同。
我的想法是有一个临时表,我可以在其中插入所有数据组。所以像这样的两条记录,
12320160101|12323456KKSD3467|456SSGFED43520160101173802|
98720160102|456GGLWSD45960160108854802|
将在临时表中产生三个记录。
ID Timestamp Data
123 01/01/2016 12323456KKSD3467
123 01/01/2016 456SSGFED43520160101173802
987 02/01/2016 456GGLWSD45960160108854802
这将允许我对暂存记录进行预处理以进行进一步处理(有些会被丢弃,有些会进一步分解其数据)。我的问题是如何将平面文件分解为临时表。我可以使用管道 (|) 拆分整个记录,然后使用派生列转换通过 SUBSTRING 分解标题。之后,由于数据组的数量不同,它变得更加棘手。
【问题讨论】:
标签: ssis