SSIS高級(jí)轉(zhuǎn)換任務(wù)—導(dǎo)出列
好久沒(méi)有寫SSIS了,接著上回的Import Column,這個(gè)隨筆學(xué)習(xí)Export Column,這個(gè)轉(zhuǎn)換任務(wù)用來(lái)從數(shù)據(jù)庫(kù)中的blob類型的列轉(zhuǎn)換成文件保存到文件系統(tǒng)中或者在Microsoft Word文件或者M(jìn)icrosoft Paint文件中瀏覽。執(zhí)行這個(gè)task的關(guān)鍵是要有一列包含文件的數(shù)據(jù)和要導(dǎo)出文件的路徑。Export Column會(huì)將數(shù)據(jù)列轉(zhuǎn)換成物理文件,并按照完全限定的路徑保存這些文件。
在下面的例子中,將把數(shù)據(jù)庫(kù)AdventureWorks中的一個(gè)文件列導(dǎo)出。如果你安裝了數(shù)據(jù)庫(kù)AdventureWorks,在這個(gè)數(shù)據(jù)庫(kù)中有一個(gè)包含文件的表 [Production].[document],表中有一個(gè)包含word文件的列。現(xiàn)在將這一列文件數(shù)據(jù)導(dǎo)出。
- 創(chuàng)建一個(gè)文件夾C:\exports,導(dǎo)出的文件將放在這個(gè)文件夾中
- 新建一個(gè)包命名為ExportColumnExample,添加一個(gè)Data Flow task雙擊進(jìn)入Control Flow界面
- 添加一個(gè)OLE DB Data Source,連接到AdventureWorks中的表[Production].[document]
- 預(yù)覽這個(gè)表的數(shù)據(jù),可以看到有一個(gè)列FileName包含很長(zhǎng)一串文件路徑和文件名,它們指定了文件的存放路徑,我們可以把它修改成簡(jiǎn)單點(diǎn)的如C:\exports,如圖6-12

圖6-12 - 添加一個(gè)Derived Column任務(wù)將OLE DB DataSource和它連接起來(lái)。
- 編輯Derived Column,添加一個(gè)派生列NewFilePath,編輯表達(dá)式為"c:\\exports\\" + Title + ".doc"(注意這里要使用\\,因?yàn)橐M(jìn)行轉(zhuǎn)義)。
- 添加一個(gè)Export Column轉(zhuǎn)換任務(wù),將Derived Column和它連接起來(lái)。Derived Column將會(huì)把輸入流分成兩個(gè)類別:可能是文件的一類,可能是文件名字的一類。
- 在Extract Column中選擇Document,應(yīng)為在表[Production].[document]中這一列是文件列,F(xiàn)ile Path Column中選擇NewFilePath,應(yīng)為這一列是通過(guò)Derived Column產(chǎn)生的文件路徑。
- 選中Force Truncate,如果相同文件已經(jīng)存在則覆蓋掉,最后如圖6-13

圖6-13 - 執(zhí)行報(bào)包,如圖6-14,可以看到文件夾c:\exports\內(nèi)已經(jīng)有9個(gè)文件,如圖6-15
圖6-14
圖6-15
作者:Tyler Ning
出處:http://www.rzrgm.cn/tylerdonet/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,如有問(wèn)題,請(qǐng)微信聯(lián)系冬天里的一把火
浙公網(wǎng)安備 33010602011771號(hào)