码迷,mamicode.com
首页 > 数据库 > 详细

SQL必知必会 笔记 第二十一章 使用游标

时间:2015-04-20 11:13:48      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:游标   sql   

21.1游标

SQL检索操作返回一组称为结果集的行。这组返回的行都是与SQL语句相匹配的行。
结果集(result set)SQL查询所检索出的结果
游标的一些选项和特性:
(1)能够标记游标为只读,使数据能读取,但不能更新和删除。
(2)能控制可以执行的定向操作。
(3)能标记某些列为可编辑的,某些列为不可编辑的。
(4)规定范围,使游标对创建它的特定请求或对所有请求可访问。
(5)指示DBMS对检索出的数据做复制,使在游标打开和访问期间数据不变化。

21.2使用游标

使用游标的步骤:
(1)在能够使用游标前,必须声明(定义)它。这个过程实际上没有检索数据,他只是定义要使用的SELECT语句和游标选项。
(2)一旦声明后,必须打开游标以供使用。这个过程用前面定义的SELECT语句吧数据实际检索出来。
(3)对于填有数据的游标,根据需要取出(检索)各行。
(4)在结束游标使用时,必须关闭游标,而且可能的话,释放游标。
在声明游标后,可根据需要频繁地打开和关闭游标。在游标打开时,可根据需要频繁地执行取操作。

21.2.1创建游标

使用DECLARE命名游标,并定义相应的SELECT语句,根据需要带WHERE和其他子句。
创建一个检索没有电子邮件地址的所有客户的游标。Oracle版本。

DECLARE CURSOR CustCursor
IS
SELECT * FROM Customers
WHERE cust_emai IS NULL

21.2.2使用游标

游标用OPEN CURSOR打开游标。
OPEN CURSOR CustCursor
打开游标后用FETCH语句访问游标数据。FETCH指出要检索的行,从何处检索它们以及将它们放于何处。
使用Oracle语法从游标中检索一行:

DECLARE TYPE CustCursor IS REF CURSOR
     RETURN Customers%ROWTYPE;
DECLARE CustRecord Customers%ROWTYPE
BEGIN
     OPEN CustCursor;
     FETCH CustCursor INTO CustRecord;
     CLOSE CustCursor;
END;

从第一行到最后一行,对检索出来的数据进行循环:

DECLARE TYPE CustCursor IS REF CURSOR
     RETURN Customers%ROWTYPE;
DECLARE CustRecord Customers%ROWTYPE
BEGIN
     OPEN CustCursor;
     LOOP
     FETCH CustCursor INTO CustRecord;
     EXIT WHEN CustCursor%NOTFOUND;
     ...
     END LOOP;
     CLOSE CustCursor;
END;

21.2.3关闭游标

CLOSE CustCursor;

CLOSE语句用来关闭游标;一旦游标被关闭,如果不再此打开,将不能使用。但是,为使用它不需要再次声明,只需再次OPEN它即可。

SQL必知必会 笔记 第二十一章 使用游标

标签:游标   sql   

原文地址:http://blog.csdn.net/veno813/article/details/45147393

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!