使用来自存储过程的 Return 值的 SSIS 循环

SSIS Looping with Return Value from Stored Procedure

我正在尝试创建一个基于循环中存储过程 运行 的 return 值循环的 SSIS 包。我一直收到超级无用的错误:

"Error: 0xC002F210 at Load Order, Execute SQL Task: Executing the query "EXEC ? = [Load_Focus_OrderNum] ?, 1" failed with the following error:
"Value does not fall within the expected range.".
Possible failure reasons:
Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Task failed: Load Order"

这是我的设置:

Load Order 存储过程一次加载一个包含 500 个订单的 table,然后最后一个订单号是 returned(我已经确认 returns 正确)。

DECLARE @spOut int
EXEC @spOut = Load_Focus_OrderNum 1, 1
PRINT @spOut

Returns 638 符合预期

然后我希望它从下一个订单开始处理接下来的 500 个。

我正在调用我的存储过程:

EXEC ? = sp_LoadOrders ?, 1

程序片段:

ALTER PROCEDURE [dbo].[LoadOrders] 
    (@PK_ID INT, @OrdType INT)
AS
     -- Loads OrderNumTbl table
    RETURN (SELECT TOP 1 ID FROM OrderNumTbl ORDER BY ID DESC)
GO

我的参数映射是:

我的循环表达式是:

我错过了什么?感谢您的帮助!

在参数映射部分,将参数名称值替换为参数索引>>将@OrderID替换为0,将@T1_ID替换为1

参考资料