0

我正在写入 2008 SSIS 包中的平面文件目标。其中 99.99% 可以正常工作。但是,我在目标文件中得到了一条重复的记录。

以下是该包的基本流程:
1. 读取两个 ISO-8859-1 编码文件,并将其文本编码为内存中的 UTF8
2. 将两个文件在内存中组合在一起并将它们加载到查找缓存中
3. 读取另一个源文件从磁盘
4. 将源文件中的 ID 列与查找缓存中的 ID 列
匹配 5. 如果 ID 与查找缓存中的 ID 匹配,则将其写入匹配文件,如果 ID 不匹配,则将其写入另一个文件

一切从头到尾都有效。但是,我在匹配文件中得到了一个副本。我开始怀疑重复是由连接时查找缓存文本文件中的文件结尾(或其他)特殊字符引起的。这些文件是在 UNIX 系统上生成的(但我在阅读它们时将它们编码为 UTF8)。重复记录每次都是相同的记录。我如何避免获得副本(或找出副本的来源)?我不能使用删除重复项,因为目标中有合法的重复项。几个星期以来,我一直试图弄清楚这一点。

4

2 回答 2

1

首先将数据放入暂存表,即您可以查询的表。也许您可以看到如何在联合中获得副本。另外,如果你有有效的 opnes,你怎么知道这是一个无效的重复?是什么使它无效?

于 2011-04-13T21:03:32.300 回答
1

我弄清楚了这个问题。在读取将消除该行的源时,我没有将字段设置为空字符串。然后该行与查找转换中的随机行匹配并继续并写入目标。

于 2011-04-15T19:47:52.317 回答