本人正在學習如何爲ETL系統開發SSIS包。我的第一個目標之一是發現將平面文件導入數據庫的不同方法。由於這在很大程度上是非常直接的,所以我一直在玩弄包含各種數據的不同平面文件。SSIS包刪除或忽略平面文件中的多行
我今天遇到的一個問題是Excel文檔包含第一行的數據,第二行的標題信息和最後幾行的腳信息。我想要導入到數據庫中的是標題和導致頁腳的所有行。我不想要第一排,我不想要頁腳。
我目前的解決方案是使用「Sheet1 $ A2:I20000」在高級設置和OpenRowSet中創建數據流任務。這允許我打開我想要的工作表,選擇第二行(我的標題所在的位置),然後選擇A2和I20000之間的所有其他行。
該解決方案還允許我讀頭信息(我想)和所有遵循輸入行。不幸的是,這也選擇了頁腳行,並且對於良好的性能看起來並不優化,因爲程序包必須掃描大量的行,而不管這些行中是否有數據。
下面的屏幕截圖包含我試圖基於MS SQL示例數據庫導入的Excel工作表。我想要刪除或忽略的行是帶有紅框的圓圈。其他所有未圈出的是我想要導入的內容。
我如何能忽略第一行,讀第二行對我的頭信息,請閱讀下面的標頭設置我的數據行,然後忽略最後幾排的任何想法,我被認爲是頁腳?
附加信息有關此文件
- 第一行永遠不會改變。
- 標題行永遠不會改變。
- 標題後面的數據集將更改值,而不是數據類型。
- 頁腳的第一列永遠不會改變。
- 頁腳的第二列將更改值,而不是數據類型。
- 其餘的頁腳列永遠不會改變。
想要發送到您的OLE DB目標的行是否始終在第2行開始?爲什麼你想要捕捉標題行?您是否還將標題行數據存儲在OLE DB目標中?你想忽略的行,他們總是會有SUM Total在第一列? – jymbo
我想捕捉標題行以確保它永不改變。爲了進行驗證,我可能只是將這個頭文件放入一個新表中。我想這個例子中,我並不需要它。是的最後一個問題。 SUM TOTALS將始終位於文件的末尾和第一列。 – Fastidious