问题标签 [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.
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(我猜不是那么重要)。
oracle - dbms_sql.to_cursor_number - 获取 SYS_REFCURSOR 的无效游标错误
我有以下用于创建表和视图的代码。
我有以下代码用于光标测试。但是dbms_sql.to_cursor_number
出现错误ORA-01001: invalid cursor
我做错了什么?感谢您的帮助!
我试过了strongly-typed REF CURSOR
,weakly-typed REF CURSOR
但他们得到了同样的错误。
c# - 来自普通 SQL 的 Oracle sys_refcursor
我有一个(简化的)Oracle SQL,如下所示:
我希望能够从 DataOut 参数中返回的数据中填充 .Net 中的 DataTable。
我一直在尝试各种事情,但似乎无法访问 DataOut 游标。我怎么称呼这个?
我可以编辑 SQL,但无法创建函数或过程。这可能吗?
.net - EntLibContrib 和 OdpNet
我正在尝试将一个从 oracle 过程返回的 ref 游标返回到我的 .Net 应用程序,但我不断收到有关错误数量参数的错误。
oracle 过程具有以下参数:
我的数据访问代码是:
似乎没有任何 ref cursor dbtype 允许我添加一个 out 参数来处理 ref 游标。难道我做错了什么?
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。这非常类似于ROWNUM
与SELECT ... FOR UPDATE SKIP LOCKED
.
我尝试过的最有希望的解决方案是以下功能:
但是,当我尝试像这样调用它时:
我收到一个ORA-14551: cannot perform a DML operation inside a query
错误,我现在明白这是事务的问题。移除锁会导致函数返回行。
如何在保留锁的同时将此函数中的多行放入 JDBC?
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 ?
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 return
on awhile (oracleDataReader.Read())
会引发同样的事情。.Read()
java - JPA 和 SYS_REFCURSOR 类似 OUT 参数
我想使用带有SYS_REFCURSOR
类似OUT
参数的 JPA 调用一个过程。使用普通 JDBC 这很容易,但我不确定这在 JPA 中是否可行。
我的程序如下:
sql - 如何在 TOAD 的 DataGrid 中显示 sys_refcursor 数据
请我需要帮助。(我搜索了很多,变得更加困惑。)
我使用 Toad 9.7.25,我做了这个程序(在一个包中)
在 toad 的 sql 编辑器中,我想执行该过程并在 toad 的数据网格中显示光标结果:
当我执行脚本 (F9) 并设置变量 :to_grid 类型光标时,我得到下一个错误:
“ORA-24338: 语句句柄未执行”
可能是什么问题
提前致谢。
感谢您的四篇帖子……效果很好!
但是现在有另一个问题...如果我将简单查询(从表中选择 c1、c2、c3...)替换为这样的 mor 复杂:
为什么不能显示结果?
(如果我直接在 TOAD SQL 编辑器中执行查询,则查询工作正常)
再次感谢....!!!
.net - 我的 ODP.Net 和 REF_CURSORS 的 app.config 配置有什么问题?
我已经为此苦苦挣扎了一段时间,我正在遵循本指南:
这是我到目前为止采取的步骤:
- 创建新的控制台项目
- 添加新的实体模型
将“测试”存储过程导入实体模型,sp 如下所示:
/li>- 将此添加到 app.config:
然后我尝试从之前创建的实体模型中导入函数,但是当我在选择复杂类型后单击获取列信息时没有任何反应,它不会像obe教程那样显示光标。
任何帮助,将不胜感激。
谢谢
编辑:
所以我今天又试了一次,这次的表现有所不同。现在,当我单击导入函数对话框中的“获取列信息”按钮时,该对话框将关闭,没有其他任何反应。