2013-07-18 4 views
1

Я довольно новичок в SSIS, и у меня есть проблема с разбиением CSV на несколько файлов за строкой.Разделение строк плоского файла на несколько плоских файлов SSIS

У меня есть CSV с несколькими строками - я пытаюсь разбить каждую строку на новый плоский файл и сделать каждый столбец новой строкой в ​​плоском файле.

В настоящее время у меня есть источник плоского файла, который накачивается в производный столбец и сортирует данные в формате, который я хочу. Чтобы проверить это, я вывел его в один большой плоский файл с несколькими строками, но в идеале хотел бы создать файл для каждой строки.

Я пробовал использовать для каждого для прокрутки, но я не совсем уверен, как его использовать в SSIS.

Любая помощь была бы оценена - Спасибо заранее.

ответ

1

Я думаю, что вам не нужен цикл, скрипт C# будет делать трюк. С блоками определяется как:

Источник -> [RowCounter в переменную Counter] -> [Task Script] -> Destination

Script Задача:

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

, конечно, вы должны указать только для чтения параметра: Счетчик.

Это будет установка имени соединения для каждой строки. Объедините его с сортировкой, которую у вас уже есть.

+0

Это похоже на то, что я ищу, но как я могу выводить строку [count] в создаваемый файл. Не удалось выполнить код сценария - ему не нравится DTS. Спасибо – Bradley

+1

SSIS обрабатывает данные по строкам, каждый из которых проходит через весь поток данных - от источника к dest. Это приведет к выводу каждой строки в новый файл. – makciook

+0

См. Обновленный ответ, это работает для меня – makciook

0

Вы можете использовать Multicast Transformation в потоке данных, чтобы отправить каждую запись, полученную из вашего файла с плоским файлом, в два или более плоских назначения файлов. Это может быть более эффективным способом использования SSIS, чем использование контейнера цикла или задачи скрипта.

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