2014-09-24 262 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組件,用查找組件具有的相同查詢繞過這個。這不會給出任何錯誤,不知道爲什麼......謝謝反正!

相關問題