为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

冉冉说 2022-09-07 16:38:35
我们使用MyBatis进行ORM。我需要调用一个Oracle函数,它将游标作为参数。如果MyBatis可以将Java对象映射到游标,那将是理想的,但我怀疑这是否可能。任何想法如何做到这一点?请注意,我知道如何将从函数返回的游标映射到Java对象。另一种方式是问题所在。
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超4个赞

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


<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>


查看完整回答
反对 回复 2022-09-07
  • 1 回答
  • 0 关注
  • 196 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号