`

游标 学习笔记

 
阅读更多

   1.使用游标的原因:

     使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。

   2.使用游标的常规步骤:

      (1)  声明游标。把游标与T-SQL语句的结果集联系起来。

            DECLARE 游标名 [ INSENSITIVE ] [ SCROLL ] CURSOR

            FOR  sql-statement 
        (2)  打开游标。

            OPEN MycrsrVar

       当游标被打开时,行指针将指向该游标集第1行之前,如果要读取游标集中的第1行数据,必须移动行指针使其指向第1行。就本例而言,可以使用下列操作读取第1行数据:

               FETCH FIRST from 游标名     或 FETCH NEXT from 游标名 

       (3)  使用游标操作数据。
            WHILE @@FETCH_STATUS = 0

             @@fetch_status是MSSQL的一个全局变量,其返回值有三种【返回类型integer】
             0       FETCH 语句成功
             -1      FETCH 语句失败或此行不在结果集中
             -2      被提取的行不存在
       (4)  关闭游标。

            CLOSE { { [ GLOBAL ] 游标名 } | 游标变量名 }
      (5)删除游标
            DEALLOCATE { { [ GLOBAL ] 游标名 } | @游标变量名 
      游标实例:
DECLARE E1cursor cursor      /* 声明游标,默认为FORWARD_ONLY游标 */ 
FOR SELECT * FROM c_example 

OPEN E1cursor                /* 打开游标 */ 

FETCH NEXT from E1cursor     /* 读取第1行数据*/ 

WHILE @@FETCH_STATUS = 0     /* 用WHILE循环控制游标活动 */ 
BEGIN 
          FETCH NEXT from E1cursor   /* 在循环体内将读取其余行数据 */ 
END 

CLOSE E1cursor               /* 关闭游标 */ 

DEALLOCATE E1cursor          /* 删除游标 */ 

参数说明:

   NEXT   取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。

   INTO @变量名[,…]  把提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。

 

分享到:
评论

相关推荐

    ORACLE 游标学习笔记

    在PL/SQL中为所有SQL数据操纵语句(包括返回一行的select)隐式声明游标,称为隐式游标的原因是用户不能直接命名和控制此类游标.当用户在PL/SQL中使用数据操纵语言(DML)时,Oracle预先定义一个名为SQL的隐式游标

    oracle学习笔记(从入门到精通)

    压缩包主要包括15个文档,主要是本人学习oracle过程中的笔记,希望对你有帮助:主要文档如下: ...09-游标学习笔记.txt 10-重要的函数的学习笔记.txt 11-存储过程学习笔记.txt 12-触发器学习笔记.txt 13-pl编码.txt

    Oracle 10g 学习笔记

    │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ 贴子树状态存储结构.sql │ ├─01...

    SQL 学习笔记 课堂讲义 , 游标,触发器,存储过程

    这些都是本人整理所得,对学习SQL很有用,下了之后应该不后悔!!!

    oracle学习笔记整理

    学习oracle知识笔记整理,包括pl/sql编程,过程、函数、游标开发等。

    mysql中游标的使用案例详解(学习笔记)

    mysql中游标的使用案例详解(学习笔记)

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...

    oracle学习笔记

    oracle数据库学习笔记,包括存储过程,游标...

    J2EE学习笔记(J2ee初学者必备手册)

    Unix 学习笔记7 一、Unix前言............7 二、Unix基础知识....7 三、Unix常用命令....8 四、 文件系统权限.21 五、软硬连接的区别..........................22 六、范例程序...........22 七、网络基本命令...26...

    net学习笔记及其他代码应用

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,...

    PL/SQL学习笔记

    PL/SQl学习完整笔记。详细描述了,游标,集合,触发器,常用函数,调试,异常等内容

    ORACLE_PlSql-甲骨文学习笔记

    №2声明游标,并指定select语句 8 №3打开游标 8 №4从游标中获取记录 9 №5关闭游标 9 №6完整的示例 9 №7游标与for循环 10 6 异常 10 7 存储过程 11 №1创建过程 11 №2调用过程 12 №3获取过程信息 12 №4删除...

    oracle pl的学习笔记

    自己总结的oracle pl学习代码。有游标,存储过程,触发器,集合等。 初步学习pl的话会有一些帮助,也提供了相关的练习。

    T-SQL学习笔记.chm

    一:简单的语法知识 二:简单的增 删 改 查和一些相关子句 三:复杂一点的查询 四:约束 五:create drop alter 六:视图 七:存储过程与用户自定义函数 八:触发器 九:全文索引 十:游标

    oracle基础笔记整理

    Oracle基础学习笔记,开窗排序函数,权限管理,递归查询,存储函数触发器游标等等

    ORACLE学习笔记2:日常应用、深入管理、性能优化.

    第13章 游标 第14章 任务调度 第15章 事务与锁定 第3篇 系统优化 第16章 数据库内存和进程的配置与优化 第17章 常用性能监测、分析和优化工具 第18章 对SQL语句进行分析和优化 第19章 索引和提示优化 第20章...

    双向链表API及C语言实现

    双向链表的API和C语言实现,程序说明在我的专栏《数据结构与算法学习笔记》中双向链表相关文章。包含了双向链表的结点结构体、表头结构体、创建双向链表、销毁双向链表、获取链表长度、清空双向链表、插入一个节点...

    学习sql存储过程的心得

    学习sql存储过程,一则关于存储过程的学习笔记

    sql数据库学习全过程笔记

    6.12 Sql(基础) 1 ...7.4 sql(事务处理、游标) 17 7.5存储过程 21 7.6触发器 25 7.9存储过程、游标、触发器 27 7.11 函数 32 7.12数据库管理备份与恢复,数据导入与导出 35 7.13数据库的权限设置 35

Global site tag (gtag.js) - Google Analytics