2008-11-04 34 views
4

衣衫襤褸的平面文件選項非常適合以CRLF結尾的單個拖尾字段,但是當任何數量的空白拖尾字段都被抑制並且行以CRLF提前終止時,我發現在SSIS中沒有其他選擇,只能閱讀幾列包含單個「REMAINDER」列,然後使用帶有SUBSTRING操作的派生列轉換逐個提取「可選」列。這已經發生在我身上如何在SSIS或其他工具中處理具有許多抑制列的不正確文本文件?

一種可能性是,如果有任何的方式,通過在SSIS之前,連接管理器得到它的一個保留的「軋車」組件傳遞線路。然後,您可以獲得使用連接管理器設置傳入列長度的所有好處。我總是可以創建一個外部程序(或者一個完全獨立的SSIS數據流)來傳遞一個文件,通過這個文件可以用空格填充每一行(並且右邊是粗糙的 - 只需添加相同的最小數量的空間來解釋每個壓縮字段行就足夠了),但是這確實對磁盤空間看起來很浪費,並且還要求文件被完全讀取(和寫入)一次。

或者,也許有這將簡單地NULL或空白和列自動如果線提早終止第三方數據源組件。

還有其他的選擇嗎?

回答

2

我認爲你提出的解決方案聽起來很合理。磁盤空間很便宜。在導入數據之前,有兩步清理格式是完全可以接受的。

1

使用腳本組件將列分隔爲數據源。

相關問題