SSIS - выполнение поиска в другой таблице для получения связанного столбца - PullRequest
3 голосов
/ 21 июля 2009

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

Например:

select id from myTable where name = (column from a previous component).

И содержимое «id» вышеупомянутого оператора select должно быть столбцом, который могут использовать будущие компоненты.

Если я добавлю компонент «Команда OLE DB», это позволит мне ссылаться на другие компоненты как на входы, но я не могу сгенерировать выход из него. Кажется, компонент OLE DB Command используется только для операторов обновления / вставки?

Есть идеи, как это сделать?

1 Ответ

16 голосов
/ 21 июля 2009

На самом деле, это случай поиска. Кажется, вы хотите сделать поиск по имени и вернуть идентификатор. Довольно просто Вот как я создал пример этого:

  1. Перетащите задачу потока данных на поверхность конструктора. Дважды щелкните по нему, чтобы переключиться на него.
  2. Создать диспетчер соединений для моей базы данных
  3. Перетащите на поверхность дизайна:
    • Источник OLE DB
    • Преобразование «Уточняющий запрос»
    • Назначение OLE DB
  4. Подключите источник к поиску к месту назначения. Это «Вывод соответствия поиска», который мы хотим получить в пункте назначения. Смотри рисунок 1.
  5. Настройка источника. В моей исходной таблице только что были столбцы id и name.
  6. Настройка поиска
    • Вкладка «Общие»: использование соединения OLE DB
    • Вкладка «Соединение»: укажите то же соединение, но используйте таблицу «Поиск». Моя таблица поиска была просто идентификатором и именем, но имя было сделано уникальным, поэтому в качестве справочного столбца имеет смысл.
    • На вкладке столбцов настройте имя для сопоставления с именем, используя "id" в качестве вывода. Сконфигурируйте операцию поиска как «добавить новый столбец» и назовите этот столбец «lookupId». Смотри рисунок 2.
    • Игнорировать две другие вкладки
  7. Настройте вывод для всех трех столбцов. Смотрите рисунок 3.

Вот и все. Для каждой строки из источника столбец имени будет использоваться для соответствия столбцу имени таблицы поиска. Каждое совпадение будет вносить свой столбец id в качестве нового столбца lookupId. Все три столбца перейдут к месту назначения.

Рисунок 1:
alt text

Рисунок 2:
alt text

Рисунок 3:
alt text

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