2017-01-23 157 views
1

在我的DFT裏面,我有一個OLE DB Source將大型數據集加載到我的包中。該數據集有一個名爲TYPE的整數列,其值的範圍介於1到200之間。每種類型需要使用其名稱(1.text轉換爲200.txt,總共200個文本文件)加載到單獨的文本文件中。在SSIS中使用腳本組件來拆分數據

例如,對於所有類型爲125的記錄,將創建一個名稱爲「125.text」的文本文件,並且所有具有類型125的行都將到達那裏。我知道這可以用Conditional Split來完成,但是它會變得非常沉重。所以,我只需要找到一個更好的方法。

+1

是的,這可以在腳本轉換中完成。您需要在設計器中創建所需的輸出和列,並根據需要在腳本中重定向行。請參閱https://msdn.microsoft.com/en-us/library/ms136114.aspx。 –

+0

而不是創建200個輸出端口,爲什麼不使用腳本組件作爲目的地?所有文件的佈局是否相同? – Joost

+0

是的,它們都具有相同的佈局。我不想有200個FF目的地。這就是我尋找腳本組件解決方案的原因。 – TheEsnSiavashi

回答

0

我在C#中使用下面的代碼在Script Component,它正在工作。

public override void Input0_ProcessInputRow(Input0Buffer Row) 
{ 
    string path = Path.Combine("C:\\", Row.TYPE + ".txt"); 
    if (File.Exists(path)) 
     { 
      using (StreamWriter file = new StreamWriter(@path, true)) 
        { file.WriteLine(Row.Record);} 
     } 
    else 
     { 
      File.WriteAllText(@path, "File HEADER "); 
      using (StreamWriter file = new StreamWriter(@path, true)) 
        { file.WriteLine("\n");} 
     } 
}