问题标签 [oracle-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 投票
3 回答
473 浏览

oracle - PLSQL IF ELSE in Package 过程

我有一个包含 4 个参数的包。所有参数都来自并发请求。在那个基于事务类型参数的包应该执行语句集。我刚开始使用oracle。下面是我的代码

我的方法会奏效吗?请帮我完成这件事!

0 投票
0 回答
825 浏览

oracle - 在 pl/sql 中返回多个游标

我的应用程序访问数据库以加载 UI 主页中的不同部分。所有部分都依赖于一个输入。所以我创建了一个 proc,它返回不同游标中的所有数据。现在游标返回的计数约为 25。

我的问题是:从 oracle pl/sql 过程返回多个游标有什么缺点,尽管每个游标的数​​据不超过一百行(有些也有一两行)?每个游标的获取成本非常低,因此它们非常快。

如果我将 proc 分成两个并进行 2 个单独的 db hits 来获取数据会更好吗?

0 投票
1 回答
225 浏览

plsql - 打印 Oracle Pl/sql 光标

我可以在开始结束块中直接打开并打印光标而不使用循环吗?或不读取每一列并为每一行单独打印。

0 投票
2 回答
6035 浏览

oracle - 如何在匿名 PL/SQL 块中使用 out 游标参数执行 oracle 过程?

我正在使用 Oracle XE 的 HR 数据库学习 PL/SQL。

我创建了以下存储过程:

我知道如何在 SQL Developer GUI 界面中执行它并查看结果。我还在这里这里Justin Cave那里学到了如何执行它并查看 SQL*Plus 样式的结果,如下所示:

我想在匿名 PL/SQL 块中执行存储过程并在网格中查看结果,但它没有成功。

就像 Justin Cave 所建议的那样,以下执行得很好,但没有显示结果:

以下将失败:

错误消息说:

PLS-00320:此表达式类型的声明不完整或格式错误

我不明白。我一直在其他一些匿名 PL/SQL 块中这样做,并且效果很好。这里的那条线有什么问题?想不通。

0 投票
0 回答
39 浏览

database - 获取数据游标而不清除它

在 oracle DB 上工作并使用 sysrefcursor。我需要从游标中获取一个值。但是每当我们使用

它完全清除了游标中的所有数据。我在过程中需要这个光标。谁能告诉我从游标中获取数据而不清除它的过程。

0 投票
2 回答
3313 浏览

oracle - 如何获取 sysref 游标选择的记录总数?

背景

我正在开发一个调用 PLSQL 存储过程来检索和操作信息的 Web 应用程序。在一种这样的情况下,数据库有两个存储过程;一个选择给定参数集的记录总数,一个返回具有相同参数的实际记录,加上分页参数(最小和最大行数)。

EX(不是实际代码):

是否有人认为这是一个好主意超出了我的立场范围。问题是,无论何时更改任何一个存储过程,结果都不匹配。短期解决方法是查看两个存储过程,确定哪个存储过程的选择标准是合适的,然后编辑另一个存储过程,使它们都匹配。

作为长期修复,我想更改 get_records_count 过程以调用 get_records 过程,然后返回将从生成的 sys_refcursor 返回的记录总数。

前任:

实际问题

如何选择将为 sys_refcursor 返回的记录数?结果数字需要在 sys_refcursor 中返回

0 投票
1 回答
1844 浏览

oracle - 使用多记录的 Oracle Forms 更新表

我有一个多行块,在 oracle 形式中看起来像这样:

在此处输入图像描述

我的查询:

看起来像这样:

是表中要更新为列new的列:

在此处输入图像描述

这样当我重新查询时,我表上的值应该是这样的:

我尝试过提交表单提交:

但这只会更新我拥有的最后一条记录。

0 投票
1 回答
737 浏览

database - 使用光标获取表数据到oracle数据库中的Varray

我有一个名为 PhoneBook 的表,它具有以下属性:ID、FirstName、LastName。它有 5 条记录我想创建一个 VARRAY 并使用光标将电话簿表中的所有名字提取到 VARRAY 中。这是我的代码:

当我编译这段代码时,它给了我一个错误:

ORA-06532:下标超出限制 ORA-06512:在第 14 行 06532。00000 -“下标超出限制” *原因:下标大于可变数组的限制或可变数组或嵌套表的非正数。*操作:检查程序逻辑并在必要时增加可变数组限制。

请帮我解决这个问题。谢谢你

0 投票
1 回答
78 浏览

oracle - 使用游标将表数据提取到表中

我有一张叫电话簿的表,它有两列(firstName, LastName)。我想使用游标按 firstName 创建一个 lastName 索引表,我编写了以下代码:

它已成功编译。当我运行此过程时,它应该打印存储在 tableNames 中的 lastNames 但它给了我一个错误:

ORA-06502“PL/SQL:数字或值错误”
原因: 发生算术、数字、字符串、转换或约束错误。例如,如果尝试将值 NULL 分配给声明为 NOT NULL 的变量,或者尝试将大于 99 的整数分配给声明为 NUMBER(2) 的变量,则会发生此错误。
行动: 改变数据,它是如何被操纵的,或者它是如何被声明的,这样值就不会违反约束。

请帮我解决这个问题

0 投票
0 回答
58 浏览

oracle - UPDATE 语句不更新任何行

我有两张表 (ORACLE):D_CONTROL_CARGA 和 F_PS_CARGA_DIARIA_D

表 D_CONTROL_CARGA

表 F_PS_CARGA_DIARIA_D

我想用这个 PL/SQL 代码更新 CANTIDAD_CA 列:

然后我得到:更新的行-1

我必须改变什么?