SSIS 2017 «Выполнение задачи SQL» завершается с ошибкой Не удалось найти хранимую процедуру

Я использую SSIS с подключением АДО.НЕТ к Azure. В SSIS я хочу выполнить процедуру с одним входным и двумя выходными параметрами. Входной параметр является статическим значением. Процедура работает с T-SQL в SSMS.

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

Общий

  • SQLStatement: METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2, @INSTANCE, @PROCESS_STATUS
  • Искуисторедпроцедуре: Истина
  • Тип подключения: ADO.NET
  • Набор результатов: нет
  • SQLSourceType: прямой ввод

Отображение параметровSSIS 2017 «Выполнение задачи SQL» завершается с ошибкой Не удалось найти хранимую процедуру

SSIS 2017 «Выполнение задачи SQL» завершается с ошибкой Не удалось найти хранимую процедуру

Когда я выполняю «Выполнение задачи SQL», я получил следующую ошибку

Must declare the scalar variable "@". Possible failure reason: Problem with the query, "ResultSet" property not set correctly..

Обновлять

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

Execute SQL Task] Error: Executing the query "METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2, @INS..." failed with the following error: "Could not find stored procedure 'METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2, @INSTANCE ,@PROCESS_STATUS'.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
0
1 743
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

Спасибо за комментарий! Я корректирую вопрос. Теперь я получаю другое сообщение об ошибке!

Erik hoeven 08.04.2019 21:37

@Erikhoeven Вы изменили свойство IsQueryStoredProcedure на True?

Srikar mogaliraju 09.04.2019 17:12

Да, я изменил это на правду

Erik hoeven 09.04.2019 17:13

@Erikhoeven Можете ли вы подтвердить, что вы используете только имя процедуры в SQLStatement вместо EXEC procedureName ?

Srikar mogaliraju 09.04.2019 17:17

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

METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@param1, @param2

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

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

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

Обновление 1

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

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

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

Спасибо за комментарий! Я корректирую вопрос. Теперь я получаю другое сообщение об ошибке!

Erik hoeven 08.04.2019 21:37

@Erikhoeven Попробуйте использовать полное имя: <database name>.<schema name>.<stored procedure name> или добавьте команду USE <database> перед выполнением хранимой процедуры.

Hadi 08.04.2019 21:47

Измените направление ваших параметров на INPUT.

ОП упомянул, что I want to execute a procedure with one input and 2 output parameters

Hadi 08.04.2019 23:27

Если у вас есть параметры OUTPUT, тогда набор результатов не должен быть NONE.

Faisal Mehboob 08.04.2019 23:54

Это неправда, параметры OUTPUT не связаны с ResultSet. (ResultSet и параметры вообще не связаны!)

Hadi 09.04.2019 00:18

Другие вопросы по теме