正如标题中所说,我想知道是否可以将多个引用游标(在 Oracle 存储过程中)分配给一个:像下面的代码:...。
create or replace procedure assign_ref_cursor(result_cur out sys_refcursor)
as
cursor1 sys_refcursor;
cursor2 sys_refcursor;
cursor3 sys_refcursor;
-- expected result:
result_cur[0] = cursor1
result_cur[1] = cursor2
result_cur[2] = cursor3
...
return result_cur;
...好吧,这将是一件好事,它将每个 ref_cursor 的全部结果合二为一。
这样做的原因是因为我正在使用 Spring 数据 JPA 从存储过程中检索数据(多个引用游标)。但显然没有使用 javax.persistence.storedprocedurequery 检索多个引用光标的解决方案......尽管谷歌搜索了几天......
因此,我设想了将 Oracle 存储过程更改为仅返回一个 ref_cursor 的解决方案,即“聚合”不同的 ref_cursor。
继亚历克斯的问题之后,这是一个更新
我尝试使用以下方法调用三个 OUT ref 游标参数:
StoredProcedureQuery proc = entityManager.createStoredProcedureQuery("myStoredProc");
proc.registerStoredProcedureParameter("cursor1", void.class, ParameterMode.REF_CURSOR);
proc.registerStoredProcedureParameter("cursor2", void.class, ParameterMode.REF_CURSOR);
...
List<Object[]> listOfObjects = proc.getResultList();
但是listOfObjects只包含cursor1的内容 没办法获取cursor2的内容...