2010-03-18 49 views
4

我在我的SSIS項目的數據流中有一個OLE DB數據源和一個平面文件目標。目標僅僅是將數據輸入到文本文件中,並且這樣做。如何調整SSIS中平面文件目標中的列?

我遇到問題的地方在於格式化。我需要能夠rtrim()幾列刪除尾隨空格,我還有一些需要保留其前導零。目前的流程正在失去所有的前導零。

rtrim()可以通過簡單的截斷來完成,並忽略截斷錯誤,但這是非常不雅觀和容易出錯的。我想找到一個更好的方法,比如在需要的地方實際執行rtrim()函數。

探索類似的SSIS問題&關於SO的答案,要做的事情似乎是「使用腳本任務」,但這通常只是在沒有任何細節的情況下拋出,而且它根本不是一個直觀的設置。

我不明白如何使用腳本來做我需要的。在控制流中使用腳本任務還是在數據流中使用腳本組件?我可以在腳本中執行rtrim()和填充字符串嗎?任何人都有這樣的例子嗎?

非常感謝提前。

回答

6

有了SSIS,有很多可能的解決方案!從你所提到的,你可以在數據流中使用派生列轉換來執行修剪和填充 - 你可以使用表達式來執行此操作,這將是相對直接的。例如,

ltrim([ColumnName]) 

修剪和沿線東西

right("0000"+ [ColumnName],6) 

墊(這是我的頭的頂部,這樣的語法可能不準確)。

至於腳本方法,這也是有效的。您可以在數據流上使用腳本組件轉換,並使用VB.NET或C#(如果您有2008)字符串操作方法(例如strVariable.Trim())。

+0

這是間接的問題...太多的選擇!我使用了一個派生列轉換,並且只需很少的努力就完成了這個任務。謝謝啓示者。 – theog