SQL Server 2005 SSIS - Как получить специальную информацию из первой строки файла - PullRequest
0 голосов
/ 22 января 2010

Скажем, у меня есть текстовый файл, который выглядит следующим образом:

date 1/1/2010
a,b,c
a,b,d
...

Я хочу импортировать его в таблицу, чтобы он выглядел так:

1/1/2010,a,b,c
1/1/2010,a,b,d
...

Что такое элегантныйспособ сделать это?

Моя лучшая идея на данный момент - использовать пакет потока данных и использовать источник плоского файла для чтения в файле (игнорируя первую строку) и загрузки его в таблицу.Когда это будет выполнено, попросите задачу скрипта снова открыть файл, прочитать дату, а затем передать эту дату в задачу sql, чтобы обновить таблицу с датой.

Но, безусловно, есть меньшезапутанный путь?

Ответы [ 2 ]

2 голосов
/ 22 января 2010

Я бы извлек дату в переменную datetime пакета. Затем используйте поток данных для извлечения ваших данных, как вы упомянули. После этого в том же потоке данных я бы использовал преобразование производного столбца, чтобы добавить переменную даты в ваш буфер, который затем будет загружен в вашу таблицу. Это похоже на то, что вы имели в виду, но требует одного менее открытого и закрытого соединения БД, которое будет создано и удалено с помощью вашей задачи sql.

1 голос
/ 23 января 2010

Я использовал этот компонент -> http://www.sqlis.com/post/Row-Number-Transformation.aspx

Компонент создает новую переменную с номером строки. Вы читаете файл, как вы описали в вопросе, а затем применяете компонент. После этого вы можете использовать условное разбиение, чтобы взять все строки с идентификатором> 1.

Это позволяет избежать двойного обращения к базе данных, но требует установки стороннего компонента.

Подбери себе яд.

...