当前位置: 首页 > 知识库问答 >
问题:

是否可以将多个Oracle引用游标分配给一个

马边浩
2023-03-14
    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;

我尝试用以下方法调用三个引用游标参数:

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的内容。

共有1个答案

唐兴发
2023-03-14

如果您当前有以下内容:

open cursor1 for <query1>;
open cursor2 for <query2>;
open cursor3 for <query3>;

然后您可以将它们组合为一个结果中的游标表达式:

open result_cur for
  select cursor(<query1>) as cursor1,
         cursor(<query2>) as cursor2,
         cursor(<query3>) as cursor3
  from dual;

如果要返回其他数据,还可以包含更多的“普通”列,并对一个真实的表而不是dual表进行主查询。

 类似资料:
  • 问题内容: 在Python中,我需要一个类似于以下内容的字典对象: 我已经可以通过结合和这样的功能成功获得此功能: 但是,由于该代码是为新手用户编写的,他们有时可能需要添加键/值,所以我更喜欢简单的准系统(类似于Perl)的语法,例如: 但是,这给了我: 有什么方法可以进一步简化我的第一个示例(使用和),并获得我要查找的dict对象? 或者,或者,如果像我的第二个示例那样,我有一个包含元组的字典,

  • 问题内容: 想法是在片中具有可变数量的通道,将通过通道接收的每个值推入单个通道,并在最后一个输入通道关闭后关闭该输出通道。这样的事情,但对于多个渠道来说,要超过两个: 上面的代码避免了繁忙的循环,因为没有任何情况,这是很好的(编辑:看起来,“,ok”的存在使select语句成为非阻塞状态,并且循环毕竟是繁忙的。但是出于示例的目的,就好像将代码阻止一样)。是否可以通过任意数量的输入通道来实现相同的功

  • 问题内容: 我正在使用React使用渲染多个数据。 如何禁用列表中的单击按钮? 这是我的代码: 使用不起作用…我认为我无法添加状态,因为有多个按钮。 问题答案: 您应该使用而不是ref,并且是的,您需要多个ref,一个数组应该很好 根据文档: React支持可以附加到任何组件的特殊属性。ref属性具有一个功能,并且在 安装或卸载组件后立即执行。 在HTML元素上使用ref属性时,会 接收基础DOM

  • 我正在写一个jar,打算与Spring和Ehcache一起使用。Spring要求为每个元素定义一个缓存,所以我计划为jar定义一个Ehcache,最好是作为jar中的一个资源,可以导入应用程序的主要Ehcache配置。然而,我对示例Ehcache配置文件的阅读和我的谷歌搜索并没有找到任何导入子Ehcache配置文件的方法。 有没有办法导入一个子Ehache配置文件,或者有没有其他方法来解决这个问题

  • //VM args:-verbose:gc-xms20m-xmx20m-xmn10m-xx:+printgcdetails-xx:survivorratio=8-xx:+useg1gc 运行该程序我得到以下结果: [GC暂停(G1巨大分配)(年轻)(初始标记),0.0015208秒]...... 堆垃圾-第一堆总计20480K,已使用10816K[0x00000007BEC00000,0x0000

  • 我基本上有一个但是我不需要这个数组中的所有位置。我可以创建另一个节点结构来动态地只设置适当的位置,但这将更加困难,因为我的特定程序依赖于矩阵的索引。如何有选择地释放矩阵的某些索引。 例如,对于特定节点,我不需要uint64_t[4][3]或uint64_t[7][3],如何释放该节点?