SSIS 2017 "Execute SQL Task" 失败找不到存储过程

SSIS 2017 "Execute SQL Task" fails Could not find stored procedure

我正在使用 SSIS 与 Azure 的 ADO.NET 连接。在 SSIS 中,我想执行一个具有一个输入和 2 个输出参数的过程。输入参数是一个静态值。该过程适用于 SSMS 中的 T-SQL。

我设置 "Execute SQL Task" 如下

一般

参数映射

当我执行 "Execute SQL Task" 时收到以下错误

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.

以下是配置参数和属性的方法。将 IsQueryStoredProcedure 属性 设置为 True,而不是编写 exec ProcName 如果您使用 ADO.NET Connection,您只需在 sqlstatment 中提供 ProcName。

因为您正在使用 ADO.NET 您必须指定参数名称。例如:

METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@param1, @param2

并且不要在参数映射选项卡中使用参数索引,如屏幕截图所示。

附加信息

您可以参考以下官方文档了解更多详细信息和示例:

更新 1

尝试使用完全限定的名称:

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

或者在存储过程执行前添加一条USE <database>命令

将参数的方向更改为INPUT。