2015-06-11 46 views
0

我試圖通過刪除(希望)不必要的轉換來清除一些SSIS包的混亂。我有一個查找轉換,通過縣名匹配傳入地址,並在匹配時添加一個具有縣的FIPS值的列。如何向SSIS查找轉換中的查找否匹配輸出添加列?

我想將一列添加到不匹配輸出,該列創建與FIPS列相同的名稱和類型的列,但爲空。我可以添加一列,並將它命名,但是當我嘗試分配數據類型,它給了我一個錯誤如下:

Error at Get Demographics [LOOKUP County [893]]: The LOOKUP County does 
not allow setting output column datatype properties. 

如果我嘗試將其保存沒有一個數據類型,然後我得到的列上缺少數據類型的錯誤。

任何線索我怎麼能做到這一點,而不必添加一個Dervied Column Transformation,或者這是我唯一的選擇嗎?

回答

1

我會避免在轉換的輸出列中設置東西 - 它可能會導致一些有趣的行爲,並且也可能是某人未來支持的痛苦。

如果您發送「不匹配」行,添加空值,然後執行全部合併以將所有行重新合併到一起,然後設置查找(其中指出指定如何處理行沒有匹配的條目)到忽略失敗而不是將行重定向到不匹配輸出。您將不再有不匹配輸出,並且不需要派生列或聯盟全部 - the rows with no match will simply have a null column

而且以供將來參考,請注意,如果你做一個UNION ALL彙集兩個流,以及一個流動所沒有的一些列的,the rows from that flow will simply end up with nulls - 所以沒有必要在手動添加空

+1

你是我的英雄。所有這一次,我認爲SSIS丟棄了在選擇_Ignore failure_時未匹配的行。這是非常清潔,應該加快這個包裹。謝謝! –

+0

@dageniusal沒問題 - 在SSIS中它確實不是很清楚,我認爲這是一個常見的錯誤。爲什麼他們不能只是說「使用NULL值」或類似的東西,我不知道。只有當您想要對不匹配的行執行不同的操作時才需要使用該模式。如果您想刪除不匹配的行,只要告訴他們去no匹配輸出,那麼不要將它們發送到任何地方。 –