2

我们使用 myBatis 调用许多存储过程,它们具有我们知道如何处理的 IN / OUT 参数

但是我不知道如何处理程序实际返回值而不是将其声明为 OUT 参数

例如,使用 SQL 编辑器(SQL Server 的 TOAD)我可以运行 proc 并获得返回值,如下所示:

DECLARE @return_value int;

EXEC  @return_value = someProcedure 
    @param1 = 'abc',
    @param2 = 12345

SELECT @return_value as N'@Return Value';

GO

但是,我只得到过任何一个结果集的结果,并且不知道如何处理这种情况。我认为这样的事情可能会奏效:

<select id="callSomeProcedure" resultType="java.lang.Integer" statementType="CALLABLE">
    { call someProcedure  (
            #{param1},
            #{param2}
    ) }
</select>

但它返回 NULL

有任何想法吗?

4

1 回答 1

3

好的,我知道了

<select id="callSomeProcedure" statementType="CALLABLE">
    { #{returnVal} = call someProcedure  (
            #{param1},
            #{param2}
    ) }
</select>
于 2013-02-15T21:00:26.083 回答