使用SSIS读取具有多种记录类型的平面文件

时间:2009-09-14 16:18:58

标签: c# ssis flat-file

我们正在评估SSIS,看它是否适合即将推出的新项目。其中一个进程必须处理带有分隔记录的平面文件。该文件将包含订单。有标题行,(可选)送货地址行和一个或多个明细行。每行的字段都是分隔的,但格式不同。

我读到了这个答案:

SSIS transactional data (different record types, one file)

我可以使用条件分割任务分割数据以产生多个输出,但我不知道如何从那里继续。我有两个问题需要解决:

  1. 首先应该在地址和详细信息之前插入订单标题,因为地址和详细信息将引用订单记录,所以我认为我需要先处理该输出,但我不确定在SSIS中如何在其他分支之前,处理条件分割任务的分支。理想情况下,我想处理订单标题,然后将订单ID存储在用户变量中,以便在处理细节时,我可以引用该变量。

  2. 文件中会有多个订单,因此拆分它会更复杂。

  3. 我总是可以在C#中编写一个预处理文件或将文件读入临时表的应用程序,但我不确定我是否喜欢这种方法。

    任何经历过这个过程的人都可以分享他们如何处理它的一些见解吗?

    谢谢,

    克里斯

1 个答案:

答案 0 :(得分:2)

拆分后,将每种类型的记录存入其自己的临时表 - 或存入ssis原始数据目的地,这对于这样的中间步骤更快更好。然后将所有标头加载到最终表中,并在没有参考错误的情况下继续。

我假设详细记录中有一个headerID?这应该可以轻松处理你的第二个问题。如果没有,请告诉我们。