2017-01-23 9 views
1

Внутри моего DFT у меня есть источник OLE DB, который загружает большой набор данных в мой пакет. Набор данных имеет целочисленный столбец с именем TYPE, значение которого колеблется от 1 до 200. Каждый тип должен быть загружен в отдельный текстовый файл с его именем (1.text to 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");} 
     } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^