2013-07-18 57 views
1

我對SSIS相當陌生,我遇到了一個問題,即按行將多個文件分割爲多個文件。將平面文件行分割爲多個平面文件SSIS

我有一個CSV多行 - 我試圖將每一行分成一個新的平面文件,並使每個列在平面文件中的新行。

我目前有一個平面文件源抽取到派生列並將數據按照我想要的格式排序。爲了測試這個,我將它輸出到一個有多行的大平面文件中,但是我希望爲每行創建一個文件。

我已經嘗試使用每個循環,但我不太清楚如何在SSIS中使用它。

任何幫助將不勝感激 - 在此先感謝。

回答

1

我認爲你不需要循環,C#腳本就可以做到這一點。與定義爲塊:

源 - > [RowCounter成可變Counter] - > [腳本任務] - >目的地

腳本任務:

int val = Convert.ToInt32(Dts.Variables["Counter"].Value); 
Dts.Connections["destinationConnectionName"].ConnectionString = "c:\\yourpath\\" + val.ToString() + ".txt"; 
當然

必須指定只讀參數:計數器。

這將設置每行的連接名稱。將它與排序結合起來,你已經有了。

+0

這看起來接近我正在尋找,但我怎麼只輸出行[count]到我創建的文件。無法實現腳本代碼 - 它不喜歡DTS。謝謝 – Bradley

+1

SSIS正在逐行處理數據,每個數據流都經歷整個數據流 - 從源到目標。這會將每行輸出到新文件。 – makciook

+0

查看更新的答案,這對我有用 – makciook

0

您可以在數據流中使用Multicast Transformation將從平面文件源派生的每條記錄發送到兩個或更多平面文件目的地。這可能是使用SSIS比使用循環容器或腳本任務更有效的方法。