问题标签 [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 投票
1 回答
2857 浏览

oracle - 如何让 refcursor 结果/输出显示为文本?

我正在尝试在 Oracle 中调用一个存储过程并显示调用结果,问题是它崩溃FETCH v_cur into v_a;并出现错误:ORA-06504: PL/SQL: Return types of Result Set variables or query do not match.

我猜查询的输出不匹配v_a VARCHAR2(100),但我不知道该放什么。被调用的存储过程连接了几个表,并选择了属于不同表的 20 多个不同的列。所以我想要的是只查看查询的输出,而不必分别引用每个结果列。我将如何去做?

我正在使用 SQL Navigator(我猜不是那么重要)。

0 投票
1 回答
2166 浏览

oracle - dbms_sql.to_cursor_number - 获取 SYS_REFCURSOR 的无效游标错误

我有以下用于创建表和视图的代码。

我有以下代码用于光标测试。但是dbms_sql.to_cursor_number出现错误ORA-01001: invalid cursor

我做错了什么?感谢您的帮助!

我试过了strongly-typed REF CURSORweakly-typed REF CURSOR但他们得到了同样的错误。

0 投票
2 回答
1083 浏览

c# - 来自普通 SQL 的 Oracle sys_refcursor

我有一个(简化的)Oracle SQL,如下所示:

我希望能够从 DataOut 参数中返回的数据中填充 .Net 中的 DataTable。

我一直在尝试各种事情,但似乎无法访问 DataOut 游标。我怎么称呼这个?

我可以编辑 SQL,但无法创建函数或过程。这可能吗?

0 投票
1 回答
752 浏览

.net - EntLibContrib 和 OdpNet

我正在尝试将一个从 oracle 过程返回的 ref 游标返回到我的 .Net 应用程序,但我不断收到有关错误数量参数的错误。

oracle 过程具有以下参数:

我的数据访问代码是:

似乎没有任何 ref cursor dbtype 允许我添加一个 out 参数来处理 ref 游标。难道我做错了什么?

0 投票
1 回答
1659 浏览

oracle - 如何从 Oracle 函数中锁定并返回多行?

我一直在尝试解决 Oracle 如何处理ROWNUM以及SELECT ... FOR UPDATE SKIP LOCKED尝试返回几行未锁定的问题。我尝试了以下一些解决方案:Force Oracle to return TOP N rows with SKIP LOCKED,以及其他几个看起来与该问题非常相似的示例。我知道 Oracle AQ 可能是最好的解决方案,但我们对数据库几乎没有控制权,而且我遇到了相当大的反对意见。

我遇到的问题是尝试使用 JDBC 将结果返回给 Java。我已经尝试过setFetchSize(20),但我遇到了只将前 20 行分发给客户端的问题。我通常会看到一个处理代理获得所有 20 行或几个处理器获得一些行,所有这些行加起来为 20。这非常类似于ROWNUMSELECT ... FOR UPDATE SKIP LOCKED.

我尝试过的最有希望的解决方案是以下功能:

但是,当我尝试像这样调用它时:

我收到一个ORA-14551: cannot perform a DML operation inside a query错误,我现在明白这是事务的问题。移除锁会导致函数返回行。

如何在保留锁的同时将此函数中的多行放入 JDBC?

0 投票
1 回答
24183 浏览

oracle - 如何声明弱类型 SYS_REFCURSOR 变量的 %ROWTYPE?

下面的 Wrt 代码我不能将 fetch-into-variable 的类型声明为基础表的 %ROWTYPE,因为 SYS_REFCURSOR 位于连接两个表的选择上,并且还选择了一些在基础两个表的属性上调用的函数;即我不能声明为 L_RECORD T%ROWTYPE

当然,我不想用 SYS_REFCURSOR 中返回的列定义静态表 R,然后声明为 L_RECORD R%ROWTYPE。

因此问题是:如何声明弱类型 SYS_REFCURSOR 变量的 %ROWTYPE ?

0 投票
1 回答
455 浏览

oracle - 使用 FOR UPDATE SKIP LOCKED 打开 OUT SYS_REFCURSOR 时出错

我正在调用一个过程(从 C# 通过 ODP.Net 和 Oracle.DataAccess.dll 4.112.3.0 到带有一些补丁的 OracleDB 11.2.0.1),它有一个OUT SYS_REFCURSOR(我们称之为pCursorOut)。在这个过程中,我这样做:

我的 C# 代码:

调用Load()结果为OracleException

ORA-03113: 通信通道上的文件结尾

如果我删除FOR UPDATE SKIP LOCKED,它可以正常工作(除了锁定我需要的记录)。

这可能是版本冲突吗?

如何解决?

更新:我怀疑这可能是因为我试图在表加载时一次锁定多个记录。我现在正在对此进行一些额外的测试......不。不是这个。在第一次调用时执行 a yield returnon awhile (oracleDataReader.Read())会引发同样的事情。.Read()

0 投票
2 回答
11629 浏览

java - JPA 和 SYS_REFCURSOR 类似 OUT 参数

我想使用带有SYS_REFCURSOR类似OUT参数的 JPA 调用一个过程。使用普通 JDBC 这很容易,但我不确定这在 JPA 中是否可行。

我的程序如下:

0 投票
2 回答
39201 浏览

sql - 如何在 TOAD 的 DataGrid 中显示 sys_refcursor 数据

请我需要帮助。(我搜索了很多,变得更加困惑。)

我使用 Toad 9.7.25,我做了这个程序(在一个包中)


在 toad 的 sql 编辑器中,我想执行该过程并在 toad 的数据网格中显示光标结果:



当我执行脚本 (F9) 并设置变量 :to_grid 类型光标时,我得到下一个错误:

“ORA-24338: 语句句柄未执行”

可能是什么问题

提前致谢。


感谢您的四篇帖子……效果很好!

但是现在有另一个问题...如果我将简单查询(从表中选择 c1、c2、c3...)替换为这样的 mor 复杂:


为什么不能显示结果?
(如果我直接在 TOAD SQL 编辑器中执行查询,则查询工作正常)

再次感谢....!!!

0 投票
1 回答
1141 浏览

.net - 我的 ODP.Net 和 REF_CURSORS 的 app.config 配置有什么问题?

我已经为此苦苦挣扎了一段时间,我正在遵循本指南

这是我到目前为止采取的步骤:

  1. 创建新的控制台项目
  2. 添加新的实体模型
  3. 将“测试”存储过程导入实体模型,sp 如下所示:

    /li>
  4. 将此添加到 app.config:

然后我尝试从之前创建的实体模型中导入函数,但是当我在选择复杂类型后单击获取列信息时没有任何反应,它不会像obe教程那样显示光标。

任何帮助,将不胜感激。

谢谢

编辑:

所以我今天又试了一次,这次的表现有所不同。现在,当我单击导入函数对话框中的“获取列信息”按钮时,该对话框将关闭,没有其他任何反应。