2017-01-23 4 views
1

DFTの中には、大きなデータセットをパッケージにロードするOLE DBソースがあります。データセットには、TYPEという名前の整数列があり、値の範囲は1〜200です。各タイプは、名前(1テキスト〜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の宛先を持っているとは思わない。そのため私はScript Componentソリューションを探しています。 – TheEsnSiavashi

答えて

0

私はScript ComponentのC#で以下のコードを使用しています。

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");} 
     } 
} 
関連する問題