码迷,mamicode.com
首页 > 其他好文 > 详细

21 使用游标

时间:2018-12-25 01:00:39      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:2.3   number   RoCE   应用   修改   get   开始   ble   读取   

21.1 游标

在存储过程中使用游标可以对一个结果集进行移动遍历。

游标主要用于交互式应用,其中用户需要对数据集中的任意行进行浏览和修改。

21.2 使用游标

使用游标的四个步骤:

  1. 声明游标,这个过程没有实际检索出数据,它只是定义要使用的SELECT语句; 
  2. 打开游标;
  3. 取出数据;
  4. 关闭游标。

在声明游标后,可根据需要频繁地打开和关闭游标。在游标打开后, 可根据需要频繁地执行取操作。

21.2.1 创建游标

游标用DECLARE语句创建。

例如下面的例子定义了名为ordernumbers的游标,使用了可以检索所有订单的SELECT语句。

CREATE PROCEDURE processorders()
BEGIN
    DECLARE ordernumbers CURSOR
    FOR
    SELECT order_num FROM orders;
END;

DECLARE语句用来定义和命名游标,这里为ordernumbers。 存储过程处理完成后,游标就消失。在定义游标之后,可以打开它。

21.2.2 打开和关闭游标

游标用OPEN CURSOR语句来打开:

OPEN ordernumbers;

在处理OPEN语句时执行查询,存储检索出的数据以供浏览和滚动。

游标处理完成后,应当使用如下语句关闭游标:

CLOSE ordernumbers;

CLOSE释放游标使用的所有内部内存和资源,因此在每个游标不再需要时都应该关闭。

在一个游标关闭后,如果没有重新打开,则不能使用它。但是,使用声明过的游标不需要再次声明,用OPEN语句打开它就可以了。

21.2.3 使用游标数据

在一个游标被打开后,可以使用FETCH语句分别访问它的每一行。FETCH指定检索什么数据(所需的列),检索出来的数据存储在什么地方。它还向前移动游标中的内部行指针,使下一条FETCH语句检索

下一行(不重复读取同一行)。 

第一个例子从游标中检索单个行(第一行):

CREATE PROCEDURE processorders()
BEGIN
    --Declare local variables
    DECLARE o INT;

    --Declare the cursor
    DECLARE ordernumbers CURSOR
    FOR
    SELECT order_num FROM orders;

    --Open the cursor
    OPEN oedernumbers;

    --Get order number
    FETCH ordernumbers INTO o;

    --Close the cursor
    CLOSE ordernumbers;

END;

其中FETCH用来检索当前行的order_num列(将自动从第一行开始)到一个名为o的局部声明的变量中。对检索出的数据不做任何处理。

 

21 使用游标

标签:2.3   number   RoCE   应用   修改   get   开始   ble   读取   

原文地址:https://www.cnblogs.com/xlzfdddd/p/10171754.html

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