Oracle DBMS 中的光标


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

光标有两种类型。

  • 隐式光标
  • 显式光标

让我们从隐式光标开始:

隐式光标

每当执行 SQL 语句时,都会自动创建隐式光标。如果特定语句没有显式光标,就会发生这种情况。程序员无法控制隐式光标。

隐式光标有很多不同的属性。其中一些是:

%FOUND

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

%NOTFOUND

这是 %FOUND 的直接反义。如果使用 INSERT、UPDATE、DELETE 等命令成功提取了一条或多条记录,则返回 FALSE。否则返回 TRUE。

%ROWCOUNT

这将返回受 INSERT、UPDATE、DELETE 等不同命令影响的行数。

%ISOPEN

如果光标打开则返回 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;

更新于:2020年6月20日

4K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告