Проблема с потоком данных - PullRequest
2 голосов
/ 17 мая 2019

Ошибка при попытке запустить команду Sql в пакете служб SSIS.

  • Задача: DataFlow Task
  • Соединение: ADO.NET
  • Режим доступа к данным: команда Sql
  • Текст Sql:

    выбрать из таблицы, где field1 =? и field2 =?

Ошибка: «Не задано значение для одного или нескольких обязательных параметров»

Дополнительная информация:

Выполнить задачу Sql в пакете:

(вкладка "Общие") - Подключение: ADO.NET - Оператор SQL: exec storedprocedureX ?,?

(вкладка «Сопоставление параметров»)

User::field1 , Input , String , 0 , -1
User::field2, Input, String, 1, -1

Переменные, установленные в пакете

  • field1 значение 12C
  • field2 значение 15A

Что мне не хватает, из-за чего значения переменных не читаются на уровне потока данных? У меня нет проблем на уровне задач «Выполнение SQL».

1 Ответ

2 голосов
/ 17 мая 2019

Команда OLE DB в потоке данных отличается от задачи «Выполнение SQL» в потоке управления. Похоже, вы правильно описываете задачу «Выполнение SQL».

Чтобы использовать переменную в потоке данных, вам необходимо добавить ее в поток данных - самый простой способ - использовать производный столбец с выражением. Добавьте производный столбец в поток данных перед командой OLE DB и настройте его следующим образом: Имя производного столбца: field1; Производный столбец: добавить как новый столбец; Выражение: @ [User :: field1]. Затем в команде OLE DB в разделе «Сопоставления столбцов» сопоставьте столбцы как «Входной столбец»: field1; Столбец назначения: Param_0 и т. Д.

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