问题标签 [ref-cursor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
214 浏览

postgresql - Postgres CTE 与 refcursors

如何使用 CTE 中生成的表达式打开多个 refcursor?

我使用 refcursors 从同一函数返回多个记录集,并使用 CTE 在整个处理过程中重复使用数据集。

我会使用临时表,但这次经历让我伤痕累累。

我试过这个,但它会导致语法错误:

0 投票
1 回答
51 浏览

function - 在函数中,如何在不使用 ref 游标的情况下返回多个值?

在函数中如何在不使用参考光标的情况下返回多个值?

0 投票
1 回答
763 浏览

stored-procedures - 如何调用存储过程以打开具有不同查询的 Ref 游标

我有一个家庭作业,希望我使用带有游标的存储过程来返回来自多个表的查询。查询会根据一个数字的输入值进行更改,并且查询可以来自单个表或多个表上的联接,具体取决于运行 anon 块的用户选择的数字。我在网上的 oracle 文档中找到了我需要的完美示例,但是文档中没有匿名块来解释如何调用此过程。

已经从 Joan Casteel 搜索了堆栈溢出、google 和我的 plsql 书,但我发现大多数匿名块仅从一个表返回查询。只要它不查询多个表,我就可以使用类似的过程运行一个匿名块,并且我的匿名块仅在它返回单个变量而不是多列表时运行。

这是来自 oracle 文档的代码:

结束管理员数据;/

我会发布我的家庭作业,但我认为我最好理解一个例子并尝试应用它。您将如何编写匿名块?

0 投票
2 回答
592 浏览

oracle - 从自定义光标类型获取 Ref 光标

我们有一个名为“Get()”的现有 PL SQL 过程,当提供 order_no_ 和 sequence_no_ 时,它返回一个名为“CURSOR_TYPE”的命名 REF CURSOR 类型。我需要对此方法进行“重载”,程序员只需传入 order_no_(无 sequence_no_),它会重复调用该方法并将所有 sequence_no_ 值的所有记录收集到单个返回“CURSOR_TYPE”REF CURSOR 中。以下是我为尝试完成此操作而写的内容,并尝试按照此处显示的示例进行操作。

但是,当我尝试将此代码编译到我的包中时,我收到以下错误:

它似乎在这一行出错:

我究竟做错了什么?我怎样才能实现我的目标?这完全是实现这一目标的错误途径吗?

0 投票
1 回答
1373 浏览

c# - 如何从 C# 中的 plpgsql 函数返回 refcursor?

我是 plpgsql 的新手,我创建了一个存储过程来将表数据导入 refcursor,并且我正在尝试从 plpgsql 和 c# 调用该过程以检查过程/c# 代码是否工作正常。

程序:

从 plpgsql 调用过程:

输出:
调用过程

然后尝试从 refcursor 获取数据:

SQL 错误 [34000]: 错误: 游标“cur”不存在

尝试的另一种方法:

输出:

输出

C#:

Api 仅接收 1 行也具有空值

谁能帮我在 plpgsql 和 c# 中调用该过程?

0 投票
0 回答
61 浏览

java - org.hibernate.MappingException:无法确定类型:java.util.List for Hierarchy Ref Cursor 函数结果

我正在尝试在 DB 中调用一个过程函数,并使用 hibernate 将层次结构答案映射到实体类。我编写的实体假设代表从 ref 游标函数返回的结果结构。该函数的结果有一个属性,它是一个对象列表,并且在该对象内部还有一个属性,它也是另一个对象的列表。在应用程序启动时,我得到了上面标题中所写的 MappingException。我尝试添加注释 @OneToMany 但它不起作用,因为它没有查看数据库中的表。同样,实体代表函数结果,而不是从表中选择。有人知道任何可以防止此异常在应用程序启动中引发的注释吗?

我的实体:

调用过程函数 (rc) 的主要实体:

交付选项实体:

收费工作实体:

遥控功能:

得到以下结果:

0 投票
0 回答
363 浏览

oracle - 如何从 refcursor 中选择

我正在尝试找到更好的方法来选择REFCURSOR. 假设有一个这样的功能:

现在我需要使用 requral select 从这个表中选择内容(这是客户端应用程序的限制 - NiFi usign JDBC 连接 - 它只支持返回标量类型,反序列化REFCURSOR失败;也不能从源表中直接选择)

我找到了这个选择,它从 REFCURSOR 创建 XML,然后从这个 XML 中提取值:

知道如何避免 XML 部分(xmlsequence、extractvalue 和 value 函数调用)吗?还有一个限制,我不能创建任何其他帮助数据类型或对象——只能使用 select。

0 投票
1 回答
318 浏览

oracle - 如何在sql developer中执行同时具有out参数和返回值的函数以获取结果

使用绑定变量如何在 SQL 开发人员中获取输出参数和返回值的结果。

请分享我一个匿名块请提出一些方法

  • 将逗号分隔值存储到 ref-cursor
  • 在sql语句中使用函数来获取分隔值
  • 获取计数数据到输出参数
0 投票
1 回答
145 浏览

java - REF CURSOR 不适用于 pgjdbc-ng 驱动程序

我正在尝试REFCURSOR使用 PGJDBC-NG 驱动程序返回的示例,但出现异常

我正在尝试的源代码/代码是 -

0 投票
2 回答
505 浏览

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

正如标题中所说,我想知道是否可以将多个引用游标(在 Oracle 存储过程中)分配给一个:像下面的代码:...。

...好吧,这将是一件好事,它将每个 ref_cursor 的全部结果合二为一。

这样做的原因是因为我正在使用 Spring 数据 JPA 从存储过程中检索数据(多个引用游标)。但显然没有使用 javax.persistence.storedprocedurequery 检索多个引用光标的解决方案......尽管谷歌搜索了几天......

因此,我设想了将 Oracle 存储过程更改为仅返回一个 ref_cursor 的解决方案,即“聚合”不同的 ref_cursor。

继亚历克斯的问题之后,这是一个更新

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

但是listOfObjects只包含cursor1的内容 没办法获取cursor2的内容...