2010-04-07 64 views
0

我在一个看起来像这样的分层格式结构的平面文件:阅读分层平面文件到SSIS

区| AREACODE | AreaDescription

地区| RegionCode | RegionDescriptoin

专区| ZoneCode | ZoneDescription

区| DistrictCode | DistrictDescription

路线| RouteCode | RouateDescript离子

记录|名称|地址| Ect的

RouteFooter

路线| RouteCode | RouateDescription

记录|名称|地址| Ect的

RouteFooter

DistrictFooter

区|区号| DistrictDescription

路线| RouteCode | RouateDescription

记录|名称|地址| Ect的

记录|名称|地址| Ect的

RouteFooter

路线| RouteCode | RouateDescription

记录|名称|地址|电话

RouteFooter

DistrictFooter

ZoneFooter

RegionFooter

AreaFooter

我必须把这个变成SSIS和消费有关的记录行的信息,并且还对头部当前记录的行。以及其他来源的信息,并输出更简单的平面文件。

我想将上面的平面文件读入一个结构,每一行都包含一个记录,其中包含相应的标题信息。

我的问题是,如果可能的话,最好的方法是什么?

回答

0

首先,如果您是在说3,987,986行,您如何判断您的线路类型?你怎么知道与什么有关?有没有可以让你以更好的格式得到这个?在花费大量时间(并且不要欺骗你自己,这需要花费很多时间才能正确设置和测试)之前,我会将文件踢回提供者并以不同的格式请求它。你不会总是得到它,但你至少应该尝试。

当我在过去的DTS中完成此操作时,每行的第一个字符告诉我该行所指向的结构。我将它们全部导入到一个有两列的临时表中,一个用于记录类型数据,另一个用于其余的数据。然后我将剩下的解析到记录类型的临时表中,并为该类记录提供正确的列结构(以及任何可能需要执行关系的文件),然后进行清理并导入到prod表中。因为你也有不同数量的列,我会尝试这种方法(只有你可能需要手动填充某些列而不是直接从文件中找出),还要为每个记录在暂存表中提供一个标识。这将帮助你弄清楚我认为的真相。