sql server 2008 -重复记录在SSIS平面文件目的地



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

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

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

首先将数据放入可以查询的staging表中。也许你可以看到连接在一起是如何得到复制的。另外,如果您有有效的打开,您如何知道这是一个无效的复制?是什么使它无效?

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

最新更新