当前位置: 首页 > 编程笔记 >

Oracle DBMS中的游标

夏令秋
2023-03-14
本文向大家介绍Oracle DBMS中的游标,包括了Oracle DBMS中的游标的使用技巧和注意事项,需要的朋友参考一下

在Oracle中执行SQL语句时,将创建临时上下文区域。该区域包含与语句及其执行有关的所有相关信息。光标是指向该上下文区域的指针,并允许PL / SQL程序控制该区域。

有两种类型的游标。

  • 隐式游标

  • 显式游标

让我们从隐式游标开始-

隐式游标

每当执行SQL语句时,都会自动创建隐式游标。如果没有用于特定语句的显式游标,则会发生这种情况。隐式游标不能由程序员控制。

隐式游标有许多不同的属性。其中一些是-

发现%

如果使用INSERT,UPDATE,DELETE等命令成功获取了一条或多条记录,则它将返回TRUE。否则返回FALSE。

%未找到

这与%FOUND直接相反。如果使用INSERT,UPDATE,DELETE等命令成功获取了一条或多条记录,则它将返回FALSE。否则返回TRUE。

%ROWCOUNT

这将返回受不同命令(例如INSERT,UPDATE,DELETE等)影响的行数。

%开了

如果游标已打开,则返回TRUE,否则返回false。但是,对于隐式游标,该值始终为FALSE,因为在执行其指令后立即关闭游标。

显式游标

虽然隐式游标是自动创建的,但显式游标是由程序员专门创建的。PL / SQL块的声明部分提供了定义

创建一个显式游标具有以下步骤-

声明游标

游标声明如下。在这里,光标是c_student-

CURSOR c_student IS
Select Stu_ID,Stu_Name from Student;

游标

游标如下打开-

OPEN c_student;

取得游标

提取游标时一次访问一行。提取游标的操作如下-

FETCH c_student INTO
c_stuID, c_stuName;

关闭光标

关闭游标时,释放分配的内存。这样做如下-

CLOSE c_student;
 类似资料:
  • 我有以下使用嵌套游标的代码。它们都不是空的,但我在内部游标上收到错误“android.database.CursorIndexOutOfBoundsException: Index 0请求,大小为0”。 getName()方法: 我无法理解我在哪里做错了。有没有不同的方法来处理sqlite db中的嵌套游标。请帮助。 谢谢

  • 问题内容: 在Oracle中,可以使用关键字返回SQL查询内部的内容,如下所示: 问题是: 有谁知道我在哪里可以找到相关文档? PortgreSQL(或任何其他开源DBMS)是否具有类似的功能? 问题答案: 它被称为CURSOR EXPRESSION,并在明显的地方记录了该文档:《 Oracle SQL参考》。 在这里找到它。 关于第二个问题,PostgreSQL提供的与此功能最接近的东西是“标量

  • 问题内容: 请解释一下如何在oracle中使用游标进行循环。 如果我使用下一个代码,一切都很好。 但是,如果我为此sql语句定义变量,它将无法正常工作。 错误:PLS-00103 问题答案: 要解决与第二种方法相关的问题,您需要使用 游标变量和打开游标并获取数据的显式方式。它不是 允许在循环中使用游标变量: 了解更多

  • 我试图重现这样一个场景,红色和蓝色矩形可以在不同的屏幕尺寸下占据相同的宽度和高度(以及它们之间的相同间隙)。 我正在使用NSLayoutConstraint(我知道现在首选锚,只是试图探索基础)。我在swift游乐场尝试了以下代码: 但它显示的只是一个白色屏幕,其宽度与iPhone不匹配。我在这里做错了什么?为什么我看不到红蓝屏?

  • 我正在做一个多人游戏。每个客户端都有一个在共享环境中移动的字符。 我使用socket.io创建rooms,使用peer.js创建客户端之间的点对点连接。 我正在尝试做的是使每个客户端能够更新他的地图中其他玩家的角色的位置。 为此,每个客户端应该拥有其他玩家的键盘光标(箭头键)的状态,以便他能够用行走动画移动他们对应的角色。 p2p:我正在考虑在客户端之间创建双工流,这样每个客户端将拥有其他玩家的键

  • 由于某种原因,我不能在VS代码中使用多个光标,有人知道哪些设置允许一次选择多行吗?