代码之家  ›  专栏  ›  技术社区  ›  Chris Dunaway

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

  •  1
  • Chris Dunaway  · 技术社区  · 15 年前

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

    我读了这个答案:

    SSIS transactional data (different record types, one file)

    我可以使用条件拆分任务来拆分数据以生成多个输出,但不确定如何从中继续。我有两个问题需要解决:

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

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

    我总是可以用C语言编写一个应用程序,它将预处理文件或将文件读取到临时表中,但我不确定我是否喜欢这种方法。

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

    谢谢,

    克里斯

    1 回复  |  直到 15 年前
        1
  •  2
  •   Sam    15 年前

    拆分后,将每种类型的记录存储到它自己的临时表中,或者存储到一个SSIS原始数据目标中,这对于类似这样的中间步骤来说速度更快、效果更好。然后将所有头文件加载到它们的最终表中,并在没有引用错误的情况下继续。

    我假设细节记录里有头像?这将使处理第二个问题变得容易。如果没有,请告诉我们。