ssis脚本任务删除记录

时间:2015-09-13 21:39:43

标签: ssis script-task

几乎有两个城市的故事......我有17,000行数据作为2列中的一对字符串进入。每行总有5个项目编号和5个项目单位计数(单位计数总是4个字符)。他们必须匹配单位和项目或它是无效的。我要做的是将字符串“取消”到单独的行 - 项目编号和项目单位

所以这是一行数据和两列

的示例
  • 记录ID列:0
  • 产品编号栏目:A001E10 A002E9 A003R20 A001B7 XA917D3
  • 项目单位栏目:001800110002000300293

我编写了一个C#windows app测试工具,将数据拆分为单独的行,并且工作正常,花花公子。所以它基本上将数据转换为85,000(5乘17,000)行,并在网格中显示给我,这是我所期望的(ID,项目编号和项目单位)。

  • 0 | A001E10 | 0018
  • 0 | A002E9 | 0011
  • 等......

在我的SSIS应用程序中,我添加了一个脚本任务来处理相同的数据,并且基本上使用了我的测试工具使用的相同代码。当我运行我的任务时,我可以看到它加载17,000行,但它只在输出上生成15,000 +/-所以显然有些不对。

我在想的是我没有正确设置脚本任务,即使它使用了我的测试工具使用的相同代码,因为它因某种原因丢弃了记录。

如果我回到我的任务并给它一个特定的记录ID,它在第一次传递中没有得到,它将处理该ID并生成正确的输出。所以这告诉我记录是可以的,但由于某种原因它会错过它或在初始过程中丢弃它。也许与缓冲区有关?

1 个答案:

答案 0 :(得分:1)

嗯 - 我明白了。

我们有一个序列任务,其中包含大量并行运行的数据流任务。我们依靠引擎来确定优先级并处理数据提取和正确加载。但是,这个特定的脚本任务不是由该序列容器中的引擎正确处理的。

线索是你可以在整个过程之外运行脚本任务,它运行正常。因此,我们将脚本任务从序列任务中拉出来,并在序列任务之后将其自行放置,现在它正确运行。