问题标签 [sys-refcursor]

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 投票
2 回答
22664 浏览

sql - 使用立即执行引用游标

我想在 ref_cursor 中得到结果,但我做不到。

请建议我如何使用 Execute immediate 在 ref_cursor 中获得结果

0 投票
3 回答
1566 浏览

java - 将数据从 Oracle 存储过程传递到 Java

我们将为一个基于 Oracle 数据库的大型系统编写一个新的 Web 界面。所有业务规则都已编码在PL/SQL存储过程中,我们希望尽可能多地重用代码。我们将编写一些新的存储过程,它们将结合现有的业务规则并返回最终结果数据集。

我们希望在数据库级别执行此操作以避免 java-db 往返。接口层将用 Java 编写(我们希望使用 GWT),因此我们需要一种将数据从 Oracle 存储过程传递到 Java 服务端的方法。数据可以是例如特定项目的一组属性或满足特定标准的项目列表。有人会推荐一种更好的方法吗?

我们正在考虑以下两种情况之一:

  • 传递对象和对象列表(在模式级别定义的 DB 对象类型)

  • 通过一个sys_refcursor

我们验证了这两种方法都是“可行的”,问题更多的是关于设计决策、最佳实践、可能的维护问题、灵活性等。

我会很感激任何提示。

0 投票
2 回答
9092 浏览

c# - 使用 SYS_refcursor 类型的输出参数

在我的数据库中,我有一个带有 SYS_REFCURSOR 类型的 OUTPUT 参数的存储过程。应用程序端是用 C# 编写的。我可以将此过程的输出参数分配给 Datatable,例如:

0 投票
1 回答
2890 浏览

oracle - 在过程中使用游标作为函数输出 (Oracle)

我正在努力寻找解决方案,但总是有问题。那么我的问题是什么:

我有一个功能:

我想在我的存储过程中使用这个函数:

我得到错误:“open cur_contract for fun1(p_param1);”行中的表达式类型错误

我应该改变什么以使我的程序有效?

0 投票
1 回答
1886 浏览

c# - 获取通过引用游标参数返回的结果集的列信息

我在 Oracle 中有一个存储过程,它通过“SYS_REFCURSOR”类型的 OUT 参数返回结果集。

我需要通过 ADO.NET 获取这个结果集的列信息。我通过创建参数(OracleParameter.OracleDbType = OracleDbType.ReCursor 等)并调用“OracleCommand.ExecuteReader”(CommandBehavior.SchemaOnly)来执行存储过程。然后我在结果读取器上调用“reader.GetSchemaTable”以获取描述结果集架构的 DataTable。

我的问题是结果集每一列的信息不完整。我没有关于列的 oracle 数据类型的信息(我确实得到了列名、可空性、长度等)。我得到的唯一类型信息是列可以映射到的 CLR 类型。

我做错了什么还是有更好的方法来获取通过 OUT ref 游标返回的结果集的列信息?

0 投票
1 回答
373 浏览

oracle - 如何通过链接服务器将表或表值参数从 SQL2008 传递到 Oracle 过程?

我有一个通过 ref 游标接受值列表的 oracle 存储过程。该 oracle 数据库在单独的 SQL Server 2008 实例中设置为链接服务器。

如何在 SQL 中使用此过程,传递表、行或表值参数?

0 投票
1 回答
4824 浏览

oracle - 重用(重新打开)Oracle refcursor

我有两个 Oracle refcursors 一个包含行列表(CustomersList),另一个包含每行的列名(PriceGroups)。我需要遍历每一行和每一列并更新每一行/列的交集。如何重新定位列光标以一次又一次地从第一列开始。该表如下所示

0 投票
1 回答
632 浏览

plsql - 在 Proc 中使用 Oracle 游标并返回它?

我正在开发一个将返回两个游标的包。一个光标是带有数字主键的项目列表。另一个光标是与项目关联的文件列表

到目前为止的代码:

我遇到问题的领域:

  1. 在 table(cast(cursor)) 部分获取缺少关键字错误
  2. 我可以按原样访问代码中的光标还是需要将其复制到内部变量中?我试图创建一个 sys_refcursor 类型的变量和一个“set v_cursor := o_results”,但得到一个缺失或无效的选项错误。
0 投票
1 回答
1052 浏览

c# - C# - OracleCommandBuilder 从存储的 proc 返回 refcursor 生成插入命令

CommandBuilder 是一个非常方便的类,它可以帮助我们避免编写 INSERT、UPDATE 和 DELETE 命令。当 CommandType 是 Text 时,它很容易做到。但是,当 CommandType 是 StoredProcedure 并且程序返回 SYS_REFCUSOR 时,它无法生成 SQL。我尝试使用 sotred 程序从 Oracle 数据库中检索数据。选择很容易。(我将输出参数 - 在本例中为光标返回 - 分配给 IDataReader)。CommandBuild 是否仍然可以使用存储的 procs 返回游标来生成更新 SQL?还是我必须手动编写所有这些 SQL。(我多么想念 MS SQL Server,因为它能够使用存储过程返回结果。)

0 投票
1 回答
1377 浏览

plsql - PL/SQL 静态游标变量作为参考游标

我有一个接受 SYS_REFCURSOR 并将其转换为 JSON 的过程。

在调用上述内容的过程中,我尝试将 CURSOR 定义为正常并将其作为 REF CURSOR 提供。

我收到 PLS-00361。

我知道我可以使用 OPEN FOR 构造,但我需要在其他地方使用我的光标并且不喜欢重复。

有什么建议吗?

问候,劳伦斯。