精通Oracle核心技术和项目实战之游标x

精通Oracle核心技术和项目实战之游标x

ID:38567084

大小:612.35 KB

页数:44页

时间:2019-06-15

精通Oracle核心技术和项目实战之游标x_第1页
精通Oracle核心技术和项目实战之游标x_第2页
精通Oracle核心技术和项目实战之游标x_第3页
精通Oracle核心技术和项目实战之游标x_第4页
精通Oracle核心技术和项目实战之游标x_第5页
资源描述:

《精通Oracle核心技术和项目实战之游标x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第13章游标游标是在关系数据库中用来操作查询出来的数据集。引入游标也是为了更加方便地访问数据。游标在操作数据库时经常用到,它使用相对灵活,容易理解和操作。本章将主要学习游标的概念、种类、以及如何创建和使用游标。13.1什么是游标游标从概念上讲基于数据库的表返回结果集。它指示结果集中的当前位置,就像计算机屏幕上的光标指示当前位置一样,“游标”由此得名。13.1.1游标概念SQL是面向集合的,其结果一般是多条记录。而PL/SQL的变量一般是标量,其一组变量一次只能存放一条记录。所以仅仅使用变量并不能完全满足SQL语句向应用程序输出数据的要求。为此,在PL/SQL中引

2、入了游标的概念。13.1.1游标概念1.基本原理在PL/SQL块中执行select、insert、update、delete语句时,Oracle会在内存中为其分配一个缓冲区。游标是指向该区的一个指针,或是一种结构化数据类型。它为应用程序提供一种对结果集中的每一行数据分别进行单独处理的方法。13.1.1游标概念可以将游标形象地看成一个变动的光标。它实际上是一个指针,在一段Oracle存放数据查询结果集或数据操作结果集的内存中,这个指针可以指向结果集中的任何一条记录。通过游标就可以得到它所指向的数据,但初始时它指向首记录。这种模型很像编程语言中的数组。如图所示。13

3、.1.2游标种类Oracle中游标分为静态游标和动态(REF)游标两类。其中,静态游标就像一个数据快照,打开游标后的结果集是对数据库的一个备份,数据不随对表执行DML操作后而改变。静态游标又分为显式游标和隐式游标两类。动态游标在下面章节中讲解。游标种类如图所示。13.2显式游标显式游标在PL/SQL编程当中有着重要的作用,通过显式游标用户可以操作返回的数据,使得一些在编程语言中复杂的功能更容易实现。13.2.1创建显式游标步骤显示游标的使用顺序可以明确地分成声明游标、打开游标、读取数据和关闭游标4个步骤。具体步骤如下。1.声明游标声明游标主要是用来给游标命名并且

4、使得游标关联一个查询。13.2.1创建显式游标步骤声明游标的具体语法如图所示。【示例13-1】下面我们为customersnew表创建一个名为cus_cur的简单游标.13.2.1创建显式游标步骤(1)声明列变量游标的好处之一是可以将访问的对象细化到记录的列。因此,在声明了游标变量之后,往往需要声明相应的列变量,以备数据访问之需。【示例13-2】在示例13-1中所声明的游标变量含有两列:customer_id、cust_first_name。现欲分别为两列的访问预备两个变量,那么可以利用declare命令。【示例13-3】声明变量时,除了使用特定的数据类型来声明

5、变量,还可以直接利用列的数据类型来声明变量类型。13.2.1创建显式游标步骤(2)声明行变量Oracle不仅可以利用列类型来定义变量,而且可以直接声明一个行类型的变量,来达到为每个列统一声明变量声明行类型的语法如图所示。【示例13-4】我们可以针对表customersnew的行声明一个行变量。13.2.1创建显式游标步骤2.打开游标游标中对数据的任何操作都是建立在游标被打开的前提下。游标一旦打开,其结果集都是静态的。也就是说结果集此时不会反映出数据库中对数据进行的增加、删除、修改操作。打开游标语法如图所示。【示例13-5】打开游标cus_cur。13.2.1创建

6、显式游标步骤3.读取数据游标打开后,就可以取出游标中的数据,并对其进行处理了。从游标中取出数据的命令是fetch。fetch命令把游标指向当前记录赋给PL/SQL声明的变量。它只能读出指针当前的记录,一次取出一行数据。正常情况下,fetch要和循环语句一起使用,这样指针会不断前进,直到某个条件不符合条件而退出循环。具体fetch命令的语法如图所示。13.2.1创建显式游标步骤4.关闭游标游标在使用完后,应该及时关闭,释放它所占用的内存空间。关闭游标后,结果集中的数据将不能做任何操作,具体语法如图所示。13.2.1创建显式游标步骤学了创建显式游标的步骤,总结得到显

7、式游标操作过程如图所示。13.2.1创建显式游标步骤创建返回单条记录显式游标的语法如图所示。【示例13-6】下面我们为customersnew表创建一个名为cus_cur的简单游标,并从游标中提取出单行数据。【示例13-7】对上面的PL/SQL块进行修改,在PL/SQL块中使用记录变量。13.2.2游标中的loop语句通常显式游标提取的数据不会只有一条,而是多条记录,这时如果只用一条fetch语句仅能取到游标中的一行数据。这样就需要一个遍历结果集的方式,而loop语句就能实现该功能。语法如图所示,下面示例将演示在游标中如何使用loop语句。13.2.2游标中的l

8、oop语句【示例13-8

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。