Сбой SSIS 2017 «Выполнить задачу SQL» Не удалось найти хранимую процедуру - PullRequest
2 голосов
/ 08 апреля 2019

Я использую SSIS с ADO.NET подключением к Azure.В SSIS я хочу выполнить процедуру с одним входом и 2 выходными параметрами.Входной параметр является статическим значением.Процедура работает с T-SQL в SSMS.

Я настроил «Выполнить задачу SQL» следующим образом

General

  • SQLStatement:METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2, @INSTANCE, @PROCESS_STATUS
  • IsQueryStoredProcedure: True
  • Тип соединения: ADO.NET
  • ResultSet: Нет
  • SQLSourceType: прямой ввод

Отображение параметров enter image description here

enter image description here

При выполнении «Выполнить задачу SQL» я получилследующая ошибка

Должен объявить скалярную переменную "@".Возможная причина ошибки: Проблема с запросом, свойство ResultSet установлено неправильно.

Обновление

После добавления имени параметра я получаюследующая ошибка:

Задача «Выполнение SQL» Ошибка: Ошибка выполнения запроса «METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2, @INS ...» со следующей ошибкой: «Не удалось найти хранимую процедуру» METRICE_VAULT.GP_1001_GENERC_P2, @INSTANCE, @ PROCESS_STATUS '. "Возможные причины сбоя: проблемы с запросом, свойство ResultSet установлено неправильно, параметры установлены неправильно или подключение установлено неправильно.

Ответы [ 3 ]

1 голос
/ 08 апреля 2019

Ниже приведен способ настройки параметров и свойств.Установите для свойства IsQueryStoredProcedure значение True, и вместо записи exec ProcName вам просто нужно указать ProcName в sqlstatment, если вы используете ADO.NET Connection.

enter image description here

enter image description here

0 голосов
/ 08 апреля 2019

Измените направление ваших параметров на ВХОД.

0 голосов
/ 08 апреля 2019

Поскольку вы используете ADO.NET, вы должны указать имя параметра.Например:

METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@param1, @param2

И не используйте индекс параметра на вкладке сопоставления параметров, как показано на скриншоте.

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

Более подробную информацию и примеры можно найти в следующей официальной документации:

Обновление 1

Попробуйте использовать полное имя:

<database name>.<schema name>.<stored procedure name> 

Или добавитькоманда USE <database> перед выполнением хранимой процедуры.

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