Можно ли сгенерировать как FMT, так и таблицу из файла CSV? - PullRequest
0 голосов
/ 12 июня 2019

Поэтому мне нужен способ импорта CSV, которые различаются по именам столбцов, порядку столбцов и количеству столбцов. Они всегда будут CSV и, конечно, разделены запятыми.

Можно ли сгенерировать как FMT, так и сценарий создания временной таблицы для файла CSV?

Из того, что я могу собрать, тебе нужно одно или другое. Например, вам нужна таблица для генерации файла FMT с помощью утилиты bcp. И вам нужен файл FMT для динамического построения сценария создания для таблицы.

1 Ответ

0 голосов
/ 12 июня 2019

Используя только SQL и динамически загружать текстовые файлы, быстрого способа сделать это не существует. Я вижу один вариант:

  1. Получить данные в SQL Server в виде одного столбца (скопируйте их или используйте t-sql и openrowset для загрузки, SSIS и т. д.). Обязательно включите в эту таблицу второй столбец, который является идентификатором (я назову его «row_nbr»). Это понадобится вам, чтобы найти первую строку для получения имен столбцов из заголовка файла.
  2. Анализ первой записи "where row_nbr = 1", чтобы получить запись заголовка. Вам понадобится функция разбора строк (найдите в Интернете или создайте свою собственную) для подстроки каждого имени столбца.
  3. Создание динамического оператора SQL для создания новой таблицы с проанализированным Количество полей, которые вы только что нашли. Нужно рассчитать длину и использовать универсальный тип данных "varchar", так как вы не знаете, как набрать данные. Используйте имена столбцов, найденные выше.
  4. После того, как вы создали таблицу с правильным номером соответственно Размер столбцов, вы можете создать файл формата.

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

...