Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Импорт в MS SQL текстового файла нестандартного формата (SSIS)  [new]
HerrMannelig
Member

Откуда:
Сообщений: 13
Добрый день!

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

"Дата" "Число" "Текст"
="01.01.2014"<табуляция>="54.0"<табуляция>="Иванов"<табуляция><конец строки>
="01.02.2014"<табуляция>="76.0"<табуляция>="Петров"<табуляция><конец строки>
="02.02.2014"<табуляция>="84.0"<табуляция>="Сидоров"<табуляция><конец строки>


То есть поле начинается символами - (="),
а заканчивается - (=<табуляция>).

Я попытался подобрать средство для этого - SSIS (flat file), смотрел также в сторону BULK INSERT. Но везде, как я понял, подразумевается, что разделитель полей однотипный (без выделения начала и конца поля разными символами), и вообще набор символов для разграничения полей чуть ли не ограничен.

Лучшее решение, которое я нашел - загружать все строки в одно поле таблицы приемника на сервере, а потом уже разбирать запросом.

Как правильнее загружать подобные файлы? Спасибо!
22 окт 14, 21:36    [16745691]     Ответить | Цитировать Сообщить модератору
 Re: Импорт в MS SQL текстового файла нестандартного формата (SSIS)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Непонятно, что мешает задать в качестве разделителя просто <табуляция>

Сообщение было отредактировано: 22 окт 14, 23:47
22 окт 14, 23:45    [16746188]     Ответить | Цитировать Сообщить модератору
 Re: Импорт в MS SQL текстового файла нестандартного формата (SSIS)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8316
Для особо тяжелых случаев SSIS поддерживает скрипты на C# или VB#.
23 окт 14, 11:17    [16747155]     Ответить | Цитировать Сообщить модератору
 Re: Импорт в MS SQL текстового файла нестандартного формата (SSIS)  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
HerrMannelig,

загрузить через разделитель <табуляция>
потом обрезать первый знак "=" во всех столбцах sql-запросом
23 окт 14, 11:29    [16747227]     Ответить | Цитировать Сообщить модератору
 Re: Импорт в MS SQL текстового файла нестандартного формата (SSIS)  [new]
msLex
Member

Откуда:
Сообщений: 8704
Glory
Непонятно, что мешает задать в качестве разделителя просто <табуляция>

я не автор, но (чисто теоретически) помимо "<tab>=" могут встречаться просто "<tab>" которые не должны быть разделителями колонок.

HerrMannelig,
укажите в качестве Column Delemiter-а "{t}=" и отрежьте первый символ у первой колонки
23 окт 14, 14:09    [16748465]     Ответить | Цитировать Сообщить модератору
 Re: Импорт в MS SQL текстового файла нестандартного формата (SSIS)  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1297
HerrMannelig
То есть поле начинается символами - (="),
а заканчивается - (=<табуляция>).

Я попытался подобрать средство для этого - SSIS (flat file), смотрел также в сторону BULK INSERT. Но везде, как я понял, подразумевается, что разделитель полей однотипный (без выделения начала и конца поля разными символами), и вообще набор символов для разграничения полей чуть ли не ограничен.

Лучшее решение, которое я нашел - загружать все строки в одно поле таблицы приемника на сервере, а потом уже разбирать запросом.

Как правильнее загружать подобные файлы? Спасибо!


А чем то не устраивает - по мне отл. способ
имхо вопрос в скиллах
я вот слаб в C# да и редактор этого дела в SSIS оч. не удобный
в t-sql мне проще - опять же среда не нужна

если нет проблем дальше - по мне отл. способ
23 окт 14, 15:06    [16748984]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить