我正在使用SSIS和与Azure的 ADO.NET 连接。在SSIS中,我想用一个输入和两个输出参数执行一个过程。输入参数是静态值。该过程与SSMS中的T-SQL一起使用。
我按照以下步骤设置“执行SQL任务”
常规
METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2, @INSTANCE, @PROCESS_STATUS
当我执行“执行SQL任务”时,出现以下错误
必须声明标量变量“ @”。可能的失败原因:查询问题,“ ResultSet”属性设置不正确。
更新
添加参数名称后,我收到以下错误:
执行SQL任务]错误:执行查询“ METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@ INS ...”失败,并出现以下错误:“找不到存储过程'METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@INSTANCE,@ PROCESS_STATUS'。” 。可能的失败原因:查询问题,“ ResultSet”属性设置不正确,参数设置不正确或连接建立不正确。
答案 0 :(得分:1)
下面是配置参数和属性的方法。将IsQueryStoredProcedure属性设置为True,如果使用ADO.NET连接,则不必在sqlstat中提供ProcName,而不必编写exec ProcName。
答案 1 :(得分:0)
由于使用的是ADO.NET,因此必须指定参数名称。例如:
METRICE_VAULT.GP_1001_GENERIC_PRE_PROCESS 2,@param1, @param2
并且不要如屏幕截图所示在参数映射选项卡中使用参数索引。
其他信息
有关更多详细信息和示例,请参考以下官方文档:
尝试使用完全限定的名称:
<database name>.<schema name>.<stored procedure name>
或在执行存储过程之前添加USE <database>
命令。
答案 2 :(得分:0)
将参数的方向更改为INPUT。