我正在写一个2008 SSIS包中的平面文件目的地。 99.99%的工作正常。但是,我在目标文件中得到一个重复记录。
这是包装的基本流程:
1.读取两个ISO-8859-1编码文件,并将其文本编码为内存中的UTF8
2.将两个文件合并在内存中并将其加载到查找缓存中
3.从磁盘读取另一个源文件
4.将源文件中的ID列与查找缓存中的ID列进行匹配
5.如果ID与查找缓存中的ID匹配,请将其写入匹配文件,如果ID不匹配则将其写入另一个文件
一切都从头到尾都有效。但是,我在匹配文件中得到了重复。我开始怀疑复制是由连接时查找缓存文本文件中的文件结尾(或其他)特殊字符引起的。这些文件是在UNIX系统上生成的(但是当我读取它们时,我将它们编码为UTF8)。重复记录每次都是相同的记录。如何避免复制(或找出复制品的来源)?我无法使用删除重复项,因为目标中存在合法的重复项。我一直试图解决这个问题几个星期。
答案 0 :(得分:1)
首先将数据放入登台表,您可以查询的表。也许你可以看到如何在一起加入你的复制品。另外,如果你有有效的opnes,你怎么知道这是一个无效的重复?什么使它无效?
答案 1 :(得分:1)
我想出了这个问题。在读取可能消除该行的源时,我没有将字段设置为空字符串。然后,该行与查找转换中的随机行匹配,并继续并写入目标。