2015-02-26 2 views
0

У меня мало сомнений в ssis, текстовый файл имеет данные о местоположении на основе местоположения, необходимо создать динамическую таблицу таблицы в sql-сервере и данные о местоположении, связанные с нагрузкой, с использованием пакета ssis, Исходный текстовый файл имеет пример данных как указано нижеДинамическая таблица создания и загрузки данных в ssis

ID | имя | расположение 1 | abc | Hyd 2 | banu | chen 3 | jai | bang 4 | hari | Hyd 5 | nani | Hyd 6 | banti | bang 7 | kali | chen

Основываясь на этой загрузке текстового файла, нам необходимо динамически создавать таблицы местоположения и загружать связанные данные. Из-за некоторого времени может быть больше места в текстовом файле, что нам необходимо для создания таблицы динамически и загрузите it.please скажите мне, как достичь этой задачи, используя ssis.we нужен foreach loop container, но не так, как это сделать. Пожалуйста, скажите мне, чтобы решить эту проблему.

+0

Не можете найти более подробную информацию о вашей проблеме? вы хотите создать таблицу местоположений для каждого местоположения, присутствующего в файле? ИЛИ Вы хотите создать таблицу, в которой будут импортированы все разные места в файле? Спасибо – SwapnilK

ответ

4

1) Задача DFT (Получить отдельные местоположения и соответствующие таблицы)

  • Создайте первый DFT, чтобы получить различные местоположения из файла. Добавьте агрегатное преобразование и введите входной столбец в качестве местоположения и выберите oparation как GroupBy, который предоставит вам различные местоположения в файле
  • Затем добавьте производное преобразование для получения местоположений и соответствующего имени таблицы TableName - (DT_STR, 50,1252) ("dbo.LocationList" + место) Расположение - (DT_STR, 50,1252) расположение
  • Добавить набора записей назначения и сохранять значения TableName и расположение в переменной (имя = Locations) типа объекта

2) Задача контейнера цикла Foreach (создание таблиц и сохранение данных)

  1. Foreach конфигурация контейнер петли -

    • Выберите Перечислитель как "Foreach ADO Enumerator"
    • выбор исходной переменной, как "Место" режим
    • Enumerator - Строки в первой таблице
    • В переменных отображениях ПОЛУЧИТЬ местоположение и соответствующее имя таблицы в двух переменных «местоположение» и «таблица местоположения» соответственно.
  2. Добавить SQL Task в контейнере (для создания таблицы, если его нет)

    • Обеспечить исходное выражение SQL, как -

    "Если object_id ('" + @ [ Пользователь :: Locationtable] + "') IS NULL CREATE TABLE "+ @ [User :: Locationtable] +" ( идентификатор INT, Имя Varchar (50) )"

  3. Добавить ДПФ задача в контейнере (для импорта данных в соответствующие таблицы)

    • Добавить плоский источник файла, чтобы получить загрузку данных из одного исходного файла
    • Добавить условное разделение и добавить выражение «местоположение == @ [User :: расположение]», чтобы получить соответствие цветов
    • Добавить OLEDB назначения и установить режим доступа как "OpenRowset Использование FastLoad с переменной"
    • Выбор переменной "User :: Locationtable"

Примечание - вам нужно будет указать значение по умолчанию «User :: Locationtable» переменная с именем таблицы, которая присутствует в базе данных, и имеет ту же схему, так что вы можете отобразить столбцы второй задачи ДПФ.

+0

Привет, я ударил по 2-й задаче dft, чтобы сконфигурировать целевую переменную и передать значения по умолчанию. Скажите, пожалуйста, где мы передаем значения по умолчанию для переменной locationtable. Возможно, пожалуйста, пакет атташе – balu

+0

Привет, Пожалуйста, используйте [эту ссылку] (https: //www.simple-talk.com/sql/ssis/ssis-basics-introducing-variables/) или [msdn link] (https://msdn.microsoft.com/en-us/library/ms141670 (v = sql .110) .aspx), чтобы узнать, как предоставить значение по умолчанию переменной. Извините, я не могу прикрепить пакет здесь. – SwapnilK

+0

Спасибо. Он работает отлично. – balu