私は、OUTパラメータとしてsysrefcursorを返すコードストアドプロシージャを持っています。sysrefcursorを返すPLSQLストアドプロシージャ
CREATE OR REPLACE PROCEDURE report (rvdate IN VARCHAR2,RESULTSET OUT NOCOPY sys_refcursor)
AS
..
...
.
OPEN RESULTSET FOR (SELECT A.* FROM TEMP_DATA)
...
..
CLOSE RESULTSET
END;
/
<parameterMap id="inputParam" class="map">
<parameter property="date" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="output" javaType="java.sql.ResultSet" jdbcType="ORACLECURSOR" resultMap="rec-map" mode="OUT"/>
</parameterMap>
<procedure id="readReport" parameterMap="inputParam" >
<![CDATA[{ call report(?,?) } ]]>
</procedure>
iBATISのXML構成から、このプロシージャをコールし、Javaで私はこの
java.util.Map map = new java.util.HashMap();
map.put("date", date);
System.out.println("date" + date);
xmlconfig.queryForObject("readReport", map);
return (List)map.get("output");
上記のコードをやっているがResultSetのカーソルを返す私はこのカーソルを閉じた場合、それはスローjava end.anybodyの例外はRESULTSETを閉じるかどうかを教えてくれます。
更新:
javaまたはibatis xmlでoracleカーソルを閉じる必要がありますか。
例外はありますか?また、戻り値の型sys_refcursor –