2017-01-23 2 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

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");} 
     } 
} 
관련 문제