PLSQL存储过程返回sysrefcursor
我有代码存储过程,它返回sysrefcursor作为OUT参数。
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;
/
从ibatis xml配置调用此过程
<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>
在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抛出一个异常。任何人都会帮我判断是否关闭了RESULTSET。
更新:
我是否需要在java或ibatis xml中关闭oracle游标。
没有找到相关结果
已邀请:
1 个回复
夏瓤跋棘
调用处理光标。并不是说我发现任何实际的文件都说明了这一点,我只是因为没有提到关闭而推断。