2014-11-25 55 views
0

我需要導入一系列CSV文件。他們有大約30列,其中大部分都應該是數字。生成它們的過程使用「NA」指示NULL值,使用「Inf」表示無限(除零問題),應將其轉換爲99999.重複派生列邏輯

我創建了第一列的派生列轉換,很簡單,但現在我可以考慮將其用於其他列的唯一方法是複製/粘貼,然後更改代碼30次。然後,我需要重新映射所有內容。

有沒有更簡單的方法?某種方式只是說「將這個邏輯應用於所有這些列」。我只是想將數據導入到所有NVARCHAR()列的表中,並在T-SQL中完成工作,但似乎SSIS應該能夠更優雅地處理這個問題。

謝謝!

+1

在C#或VB函數中封裝邏輯的腳本組件可能是您最好的選擇。沒有辦法將相同的邏輯應用到派生列轉換中的多個列,而沒有每個列的條目。 [這個答案](http://stackoverflow.com/a/11514444/366335)到一個類似的問題可能包含一些有用的鏈接。 – Bryan 2014-11-25 14:25:02

回答

1

沒有BIML,沒有簡單的方法可以將規則編程應用於所有列。雖然,您可以在數據流中使用腳本任務,但我認爲這會比需要更多的工作。

爲什麼不在內部使用1個派生列轉換和所有30列?您不僅限於每次轉換1次。如果我將相同的邏輯應用於多個列,我會在一次轉換中完成所有操作。在我的大多數情況下,我可以替換列(這是轉換中的一個選項),而不是「添加爲新列」,這很可能會阻止您重新映射所有內容。

+0

我正在使用單個轉換,但我仍需要創建30行並複製相同的代碼,然後更改列名稱等。 感謝您提醒我有關「替換」選項! – 2014-11-25 14:37:14