2010-04-07 74 views
0

我在一個看起來像這樣的分層格式結構的平面文件:閱讀分層平面文件到SSIS

區| AREACODE | AreaDescription

地區| RegionCode | RegionDescriptoin

專區| ZoneCode | ZoneDescription

區| DistrictCode | DistrictDescription

路線| RouteCode | RouateDescript離子

記錄|名稱|地址| Ect的

RouteFooter

路線| RouteCode | RouateDescription

記錄|名稱|地址| Ect的

RouteFooter

DistrictFooter

區|區號| DistrictDescription

路線| RouteCode | RouateDescription

記錄|名稱|地址| Ect的

記錄|名稱|地址| Ect的

RouteFooter

路線| RouteCode | RouateDescription

記錄|名稱|地址|電話

RouteFooter

DistrictFooter

ZoneFooter

RegionFooter

AreaFooter

我必須把這個變成SSIS和消費有關的記錄行的信息,並且還對頭部當前記錄的行。以及其他來源的信息,並輸出更簡單的平面文件。

我想將上面的平面文件讀入一個結構,每一行都包含一個記錄,其中包含相應的標題信息。

我的問題是,如果可能的話,最好的方法是什麼?

回答

0

首先,如果您是在說3,987,986行,您如何判斷您的線路類型?你怎麼知道與什麼有關?有沒有可以讓你以更好的格式得到這個?在花費大量時間(並且不要欺騙你自己,這需要花費很多時間才能正確設置和測試)之前,我會將文件踢回提供者並以不同的格式請求它。你不會總是得到它,但你至少應該嘗試。

當我在過去的DTS中完成此操作時,每行的第一個字符告訴我該行所指向的結構。我將它們全部導入到一個有兩列的臨時表中,一個用於記錄類型數據,另一個用於其餘的數據。然後我將剩下的解析到記錄類型的臨時表中,併爲該類記錄提供正確的列結構(以及任何可能需要執行關係的文件),然後進行清理並導入到prod表中。因爲你也有不同數量的列,我會嘗試這種方法(只有你可能需要手動填充某些列而不是直接從文件中找出),還要爲每個記錄在暫存表中提供一個標識。這將幫助你弄清楚我認爲的真相。