Служба SSIS выполняет задачу SQL Проблема с командой SQL

#ssis

#Служба ssis

Вопрос:

У меня есть следующий оператор insert в моей задаче execute sql в SSIS:

 INSERT INTO dbo.SSISLogTest 
   (NodeID, BusinessDate, StartDate, StopDate, StepName, RecordCount, Message, Status, UserID)
VALUES        (?,?,?,?,?,?,?,?,?)
  

Когда я запускаю его в рамках задачи, предоставляющей параметры, он выполняется нормально и вставляет запись в таблицу.

Когда я запускаю пакет, этот шаг завершается неудачей со следующей ошибкой:

«Ошибка [Выполнить задачу SQL]: выполнение запроса «ВСТАВИТЬ В dbo.SSISLogTest …» завершилось неудачей со следующей ошибкой: «Имя параметра не распознано». Возможные причины сбоя: проблемы с запросом, неверно заданное свойство «ResultSet», неверно установленные параметры или неправильно установленное соединение «.

Комментарии:

1. Я бы сказал, что вы неправильно настроили свои параметры в SSIS. Можете ли вы подробно рассказать, как вы это сделали? Передача параметров через переменные в пакеты является сложной задачей в SSIS и может быть подвержена ошибкам, если не выполняется определенными способами.

Ответ №1:

Разные поставщики соединений требуют разного синтаксиса — все следующее должно быть установлено правильно:

  • Тип соединения (т.е. OLE DB, ADO …) Ваш выбор, но стремитесь использовать одно и то же во всем вашем приложении.
  • Количество и специфика (имя переменной, направление, тип данных, имя параметра, размер параметра) параметров в диалоговом окне «Сопоставление параметров».
  • Синтаксис параметра в запросе SQL (т. Е. ваши вопросительные знаки.)

Пожалуйста, посмотрите пример OLEDB на скриншотах ниже и обратитесь к работе с параметрами и кодами возврата в задаче Execute SQL для получения подробной информации.

введите описание изображения здесь

Выполнить задачу SQL - Общие

введите описание изображения здесь

Комментарии:

1. Оказывается, проблема в моем случае была связана с тем, что я фактически назвал, а не предоставил порядковый номер. Спасибо за скриншоты 🙂

2. «Преимущество стандартов [SQL] в том, что есть из чего выбирать» 🙂