1

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

我读了这个答案:

SSIS 事务数据(不同的记录类型,一个文件)

而且我可以使用 Conditional Split 任务拆分数据以产生多个输出,但不知道如何从那里开始。我有两个问题需要解决:

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

  2. 文件中会有多个订单,所以拆分比较复杂。

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

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

谢谢,

克里斯

4

1 回答 1

2

After the split, deposit each type of record into it's own staging table - or into a ssis raw data destination, which is faster and good for intermediate steps like this. Then load all the headers into their final table and proceed without referential errors.

I'm assuming the detail records have a headerID in them? That should make dealing with your 2nd question easy. If not, let us know.

于 2009-09-16T00:33:03.613 回答