如何在甲骨文数据库中使用游标

  介绍

这篇文章将为大家详细讲解有关如何在甲骨文数据库中使用游标,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>什么是游标?

①从表中检索出结果集,从中每次指向一条记录进行交互的机制。

②关系数据库中的操作是在完整的行集合上执行的。

由选择语句返回的行集合包括满足该语句的,子句所列条件的所有行。由该语句返回完整的行集合叫做结果集。

应用程序,尤其是互动和在线应用程序,把完整的结果集作为一个单元处理并不总是有效的。

这些应用程序需要一种机制来一次处理一行或连续的几行。而游标是对提供这一机制的结果集的扩展。

游标是通过游标库来实现的。游标库是常常作为数据库系统或数据访问API的一部分而得以实现的软件,用来管理从数据源返回的数据的属性(结果集)。这些属性包括并发管理,在结果集中的位置,返回的行数,以及是否能够在结果集中向前和/或向后移动(可滚动性)。

游标跟踪结果集中的位置,并允许对结果集逐行执行多个操作,在这个过程中可能返回至原始表,也可能不返回至原始表。

换句话说,游标从概念上讲基于数据库的表返回结果集。

由于它指示结果集中的当前位置,就像计算机屏幕上的光标指示当前位置一样,“游”标由此得名。

<强>游标有什么作用?

①指定结果集中特定行的位置。

②基于当前的结果集位置检索一行或连续的几行。

③在结果集的当前位置修改行中的数据。

④对其他用户所做的数据更改定义不同的敏感性级别。

⑤可以以编程的方式访问数据库。

<强>引言

本节对甲骨文中的游标进行详细讲解。本节所举实例来源甲骨文中斯科特用户下的emp表部门表:

如何在Oracle数据库中使用游标”> <img src=

<强>一、游标:

<强> 1,概念:

游标的本质是一个结果集resultset,主要用来临时存储从数据库中提取出来的数据块。

<强>二、游标的分类:

<强> 1,显式游标:

由用户定义,需要的操作:定义游标,打开游标,提取数据,关闭游标,主要用于对查询语句的处理。

属性:% % NOTFOUND % ISOPEN发现% ROWCOUNT

例子:打印emp表的员工信息

申报的东西   ,CURSOR  emp_cursor  IS  SELECT  empno, ename, job 得到电磁脉冲;   ,v_empno  emp.empno %类型;   ,v_name  emp.ename %类型;   ,v_job  emp.job %类型;   开始   ,OPEN  emp_cursor;   ,循环   ,FETCH  emp_cursor  INTO  v_empno v_name, v_job;   ,DBMS_OUTPUT.PUT_LINE(& # 39;员工号为:& # 39;| | v_empno | | & # 39;姓名是& # 39;| | v_name | | & # 39;职位:& # 39;| | v_job);   ,EXIT  WHEN  emp_cursor % NOTFOUND;   ,最终获得;循环;   ,CLOSE  emp_cursor;   之前结束;

如何在甲骨文数据库中使用游标

这里严格按照显示游标的书写规则:声明emp_cursor定义游标开放emp_cursor打开游标取回emp_cursor成…提取数据接近emp_cursor关闭游标,因为提取出来的数据属于多行,所以通过循环循环打印即可。

Example2:检验游标是否打开,如果打开显示提取行数

申报的东西   ,CURSOR  emp_cursor  IS  SELECT  empno, ename, job 得到电磁脉冲;   ,v_empno  emp.empno %类型;   ,v_name  emp.ename %类型;   ,v_job  emp.job %类型;   开始   ,OPEN  emp_cursor;   ,循环   FETCH 才能emp_cursor  INTO  v_empno, v_name, v_job;   EXIT 才能;WHEN  emp_cursor % NOTFOUND;   ,最终获得;循环;   IF  emp_cursor % ISOPEN 然后   ,DBMS_OUTPUT.PUT_LINE(& # 39;游标已打开& # 39;);   ,DBMS_OUTPUT.PUT_LINE(& # 39;读取了& # 39;| | emp_cursor % ROWCOUNT | | & # 39;行& # 39;);   其他的,   ,DBMS_OUTPUT.PUT_LINE(& # 39;游标没有打开& # 39;);   ,最终获得;如果;   ,CLOSE  emp_cursor;   之前结束;

如何在甲骨文数据库中使用游标

如何在甲骨文数据库中使用游标