繁体   English   中英

如何从MyBatis将CURSOR作为Oracle Function参数传递

[英]How to pass a CURSOR as an Oracle Function parameter from MyBatis

我们将MyBatis用于ORM。 我需要调用一个将游标作为参数的Oracle函数。 如果MyBatis可以将Java对象映射到游标,那将是理想的选择,但我怀疑这样做是否可行。

任何想法如何做到这一点?

请注意,我知道如何将从函数返回的游标映射到Java对象。 另一种方法是问题。

似乎唯一的解决方案是创建一个块,声明一个游标并将其手动传递给该函数:

<select id="..." parameterType="..." statementType="CALLABLE">
    declare
          my_cursor SYS_REFCURSOR;
    begin
          OPEN my_cursor FOR
                    <foreach item="item" collection="..." separator=" union all ">
                    SELECT #{item.key} as key, ... FROM dual
                    </foreach> ;

        #{result,jdbcType=CURSOR,mode=OUT,resultMap=...,javaType=java.sql.ResultSet} := our_function(my_cursor => my_cursor);
    end;
</select>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM