2

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

我如下设置“执行 SQL 任务”

一般的

  • SQL语句:METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2, @INSTANCE, @PROCESS_STATUS
  • IsQueryStoredProcedure:真
  • 连接类型:ADO.NET
  • 结果集:无
  • SQLSourceType:直接输入

参数映射 在此处输入图像描述

在此处输入图像描述

当我执行“执行 SQL 任务”时,我收到以下错误

必须声明标量变量“@”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确..

更新

添加参数名称后,我收到以下错误:

执行 SQL 任务] 错误:执行查询“METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@INS...”失败,出现以下错误:“找不到存储过程 'METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@INSTANCE,@PROCESS_STATUS'。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。

4

3 回答 3

0

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

在此处输入图像描述

在此处输入图像描述

于 2019-04-08T10:09:12.433 回答
0

由于您使用的是 ADO.NET,因此您必须指定参数名称。例如:

METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@param1, @param2

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

附加信息

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

更新 1

尝试使用完全限定名称:

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

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

于 2019-04-08T12:14:04.583 回答
0

将参数的方向更改为 INPUT。

于 2019-04-08T20:35:20.237 回答