2014-09-24 208 views
1

我遇到了SSIS查找组件的问题。我的源表有一个字符串值(XXX),我需要知道它是否存在于另一个表上。如果我提出类似如下的查询:为什么SSIS查找返回空值?

select AAA from dest_table where AAA = XXX 

我得到一个匹配的结果。这个值在两个表中都存在。 但是,当我使用Lookup组件时,它找不到任何匹配项并返回NULL(并且这导致我的包的所有后续步骤中发生崩溃)。我的查询查询是:

select AAA, BBB from dest_table group by AAA, BBB 

我需要以下ETL过程的BBB值。另外,我添加了一个多播组件,这样我就可以将我从查找中得到的所有结果引导到一个测试表,同时让包流继续其过程。而这个测试表里面只有空值(意思是查找没有找到匹配)

这背后的原因是什么?

在此先感谢!

+1

您的查找组件是否使用'SELECT * FROM table'作为查询? “值”列的数据类型是什么?源列“XXX”的数据类型是什么? – billinkc 2014-09-24 14:45:18

+0

不,不是。它使用特定的字段作为查询,我只需要查看两个表中是否有特定的值。该值在源和目标中都是varchar(50),并且包含诸如ID之类的代码。我只需要看看这个值是否存在于目标表中,所以不要插入重复项。 – Neko069 2014-09-24 14:52:00

+1

你会用查询中使用的实际查询更新你的问题吗?根据需要消毒名称。我试图辨别出您是如何设计Lookup,无声数据转换问题或其他问题的问题。 – billinkc 2014-09-24 14:54:03

回答

0

好吧,经过多次尝试后,我仍然无法找出为什么会发生这种情况。不过,我会用一个简单的SQL Task组件,用查找组件具有的相同查询绕过这个。这不会给出任何错误,不知道为什么......谢谢反正!

相关问题