Step3 批量Excel資料來源匯入資料庫
本節核心就是:就是通過設定Foreach迴圈容器的映射變數,來遍曆Excel目錄的所有檔案,並將其資料匯入目標資料來源中。
圖解SSIS大量匯入Excel檔案、配置資料加資料檢視器
-
一、 大量匯出Excel表
-
將一個目錄下(可以包括子目錄)結構一樣的excel檔案大量匯入sql2005,可以用ssis來定製任務.下面用大量圖片完全說明整個過程.
-
1. 建立測試excel檔案,假設有a b c d四個欄位,儲存在f:\excel目錄下
並複製很多個一樣的檔案.
以此類推
2. 建立一個包Pageage2.dtsx
3. 工具箱拖一個Foreach迴圈容器
4. 編輯容器,設定遍曆目錄和其他參數
5. 建立一個映射變數,用來儲存遍曆當中的檔案路徑
6. 怎麼儲存不用你關心,你只要指定一個變數名就ok了
7. 確定後,容器產生完畢,接著拖一個資料流程工作到容器中
8. 切換到資料流tab頁,拖一個excel源
9. 編輯excel源,選擇一個剛剛的任意excel
10. 選擇一個sheet
11. 拖一個ole db目標到資料流中
12. 按住excel源的綠色箭頭,拖動到oledb目標上
13. 編輯oledb目標,選擇一個sqlserver資料表,這個表必須是已經存在的,這裡我們建立一個ssistest資料庫,產生一個和excel結構一樣的表tt
create table tt(a varchar(100),b varchar(100),c varchar(100),d varchar(100))
然後用oledb去串連
14. 編輯欄位對應關係,結構一樣,它會自動找到
15. 編輯下面的excel連結管理器,這裡將用到foreach的變數來代替剛剛選擇的那個excel檔案
16. 連線管理員的屬性中設定變數的映射用法
17. expressions的屬性編輯列表中,左邊選擇 excelfilepath,這個是連線管理員的屬性,我們將用變數來代替
18. 再點擊運算式的屬性編輯按鈕,把列表中的變數使用者::xlspath變數拖到下面的運算式框中
19. 這時ssis將會報錯,並給出警告
20. 到控制流程介面中,對資料流程工作,右鍵-屬性,開啟控制流程的屬性視窗,設定DelayValidation為True就可以了。
運行:
經過以上20步的配置,整個過程就結束了,你執行包看看效果,檔案夾下所有的excel將被大量匯入資料庫。另外可以通過sqlserver的作業來調用ssis的包實現定期自動把目錄下的excel匯入資料庫。
如果你細心的話,會看到該資料流一共執行了4次。
二、 配置資料檢視器
此處,你也可以通過添加資料檢視器進行查看執行過程中的資料,這樣可以很方便的進行SSIS包的簡單的調試.右擊Excel源和OLD DB目標表中間的綠色,點擊資料檢視器,然後點擊添加,再選擇網路,其它全部預設,確定.
再次運行包,你會發現所有的組件都是黃包,這代表正在執行,在彈出來的資料檢視器中可以看到所有的資料流的2行資料,點擊上面的綠色按鈕可以繼續運行.通過資料檢視器我們可以查看正在資料流中傳輸的資料.
資料檢視器是在流入資料群組件前就能截獲資料,它就像一個閥門。
項目step1---4原始碼檔案:版本為SQL 2005,運行代碼前還需要安裝ExceL應用程式
/Files/cocole/Step1-4Sql05.rar
作者:悟空的天空(天馬行空)
出處:http://www.cnblogs.com/cocole/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。