2010-05-10 100 views
1

我有一個平面文件看起來是這樣的:SSIS 2005 - 如何導入固定寬度的平面文件?

junk I don't care about \n 
\n 
columns names\n 
val1 val2 val3\n 
val1 val2 val3\n 
columns names \n 
val1 val2 val3\n 

我只關心與值線。這些數值行都是固定寬度格式,並且具有相同的行長度。其他垃圾行和列名可以有任何行寬。

當我嘗試平面文件固定寬度選項或衣衫襤褸的右選項預覽看起來都是錯誤的。任何想法是什麼使SSIS最簡單的方法是什麼?

+0

如果可能的話,我會讓提供者在發送給你之​​前清理這個混亂。我們發送這樣的文件給客戶和供應商,大約60%的時間,他們修復它們。可能不是可能的,但如果他們願意,它肯定可以爲你節省大量的開發時間。通常,當我們告訴客戶以較低的格式提供文件需要多少成本時,他們更願意這樣做。 – HLGEM 2010-05-10 19:50:31

回答

3

您不能使用固定寬度選項,我似乎記得只有在整齊的最後一列中有粗糙的右邊選項才適用。

您可以使用粗糙的右邊選項並將整個東西讀入字符串列,然後使用派生列。

或者,預處理文件(可能在SSIS中,使用具有條件拆分的破碎右鍵,輸出到平面文件)來過濾掉將要忽略的行,然後可以使用平面文件連接管理器上的結果文件。

另一種選擇是手工編寫數據源腳本任務。

如果您可以通過在其他數據流的輸出上定義新的連接管理器佈局來使用更復雜的文件,但SSIS中當前不可用,那將會很不錯。

這基本上是我在這個問題上提出了同樣的問題:How to process ragged right text files with many suppressed columns in SSIS or other tool?

1

頂部手動刪除垃圾後,試試這個。

  1. 設定的任務與固定寬度選項
  2. 手動列添加到高級選項卡。這裏你需要添加3列,每列長度爲4.

如果它工作正常..然後你可以使用腳本任務來閱讀平面文件並刪除垃圾,然後再進行數據流任務。