某些時候數(shù)據(jù)來源是文本文件,有時候我們經(jīng)??吹桨?細(xì)、父/子記錄在同一個文本文件中,這在DTS中是非常難以處理的,但這種情況在SSIS中有所改變
在本文中,我將制造這樣一個例子讓你明白如何處理這種類型的要求
大體的數(shù)據(jù)流構(gòu)造像下面這樣,我會仔細(xì)加以講解:
下面這個圖顯示了我們要處理的數(shù)據(jù)來源的文本格式,其中含有“M”的為主行,含有“D”的為子行

我們將建立一個flat file connection manager指向該文件,在這里,我并不打算把行拆分出來,暫時把整行讀在一列中

下一步我們將拖曳一個 Flat File Source Adapter 組件到數(shù)據(jù)流面板,并指定來源和上面所建立的連接來源,且指定輸出列
完成這個操作后,我們將用 Conditional Split Transform 組件來把文件中的記錄流向不同的輸出,配置如下

現(xiàn)在我們已經(jīng)完成了主從行的不同流向,下一步我們將用 Script Transform 把行中的信息拆開到不同的列中去
使用Script Transform組件的第一步是添加一些輸出列,當(dāng)數(shù)據(jù)經(jīng)過這個組件時,下游的組件將可以看到這些列

到現(xiàn)在,我們只定義了Script Transform 組件將產(chǎn)生這些列,但并沒有具體的指定列中的內(nèi)容,下面我們可以通過設(shè)計以下腳本來實現(xiàn)不同列的內(nèi)容是什么

最后,我們只需放上2個Raw File Destination Adapter組件接收輸出即可,下面是包的運(yùn)行結(jié)果

文章來源:http://www.sqlis.com/default.aspx?54
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=449886