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