2017-04-07 70 views
2

我想創建一個平面文件輸出,其中行的格式不同。 文件具有標題,中間數據行,頁腳行。 文件看起來像下面SSIS:創建具有不同行格式的平面文件

H|deptcode123|deptNameXYZ|totalemp300 
E|Sam|Johnson|address1|empCode1|........many other columns 
E|Sam2|Johnson2|address2|empCode2|........many other columns 
E|Sam4|Johnson3|address3|empCode3|........many other columns 
E|Sam5|Johnson4|address4|empCode4|........many other columns   
J|300|250000 

怎樣才能在SSIS此文件。輸入將來自不同的表格,我打算編寫3個單獨的查詢/ sp來獲取標題,中間行和頁腳行記錄。

+0

是頭只是一個開始,或者你有頭,細節,頁腳出現多組?如果你有多組H/D/F,那麼你需要基本上在SQL語句中構建它。以下兩種解決方案不適合重新出現在中間的標題 –

+0

標題(H)以及頁腳(F)在文件中只出現一次,中間行(D)將爲多行。 – coder

回答

2

如果您想創建一個平面文件,其中行具有不同的元數據。您必須使用一列平面文件連接管理器。與Dt_WStr數據類型和長度= 4000

使用連續3 DataFlow task使用相同Flat file destination

首先一個寫頭,第二個中間行,第三個頁腳。

您可以從選擇statment使用Script Component

2

要做到這一點,你需要爲每個不同類型的行集的數據流量和連接管理器串聯值或。例如,要有不同的標題,正文和頁腳,您需要3個數據流和3個平面文件連接管理器。每個平面文件連接管理器指向相同的文件。訣竅是確保平面文件目標中的設置Overwrite data in the file未被選中。通過這種方式,每個數據流都會執行並追加到文件中,每個數據流可以具有不連續的列和數據類型。

enter image description hereenter image description here

+0

我試過了,但每種類型的列數是不同的。標題(H)假設5列作爲中間行(D)有20列,則此(20)的最大值被視爲平面文件中的列數。並且標題行看起來像這樣H | deptcode123 | deptNameXYZ | totalemp300 ||||||||| ... – coder