zoukankan      html  css  js  c++  java
  • 游标

       游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。游标有两种类型:显式游标和隐式游标。

       1. 声明游标

         在DECLEAR部分按以下格式声明游标: 
         CURSOR 游标名[(参数1 数据类型[,参数2 数据类型...])] 
         IS SELECT语句; 
         参数是可选部分,所定义的参数可以出现在SELECT语句的WHERE子句中。如果定义了参数,则必须在打开游标时传递相应的实际参数。 
         SELECT语句是对表或视图的查询语句,甚至也可以是联合查询。可以带WHERE条件、ORDER BY或GROUP BY等子句,但不能使用INTO子句。

         实例:

    cursor c_name is (select namex from T_namex_j122);

       2. 打开游标 
         在可执行部分,按以下格式打开游标: 
         OPEN 游标名[(实际参数1[,实际参数2...])]; 

    open c_name;

       3. 提取数据 

         在可执行部分,按以下格式将游标工作区中的数据取到变量中。提取操作必须在打开游标之后进行。 
         FETCH 游标名 INTO 变量名1[,变量名2...]; 

    fetch c_name into mname;
    
    如果有多个变量的话就是:
    cursor emp_cursor is select ename,job from emp where empno=7788;   
    fetch emp_cursor into v_ename,v_job;

       4.关闭游标 
         CLOSE 游标名; 
         显式游标打开后,必须显式地关闭。游标一旦关闭,游标占用的资源就被释放,游标变成无效,必须重新打开才能使用。

    close c_name;

       5. 游标的属性   

         返回值类型   意义  

    %rowcount   整型  获得FETCH语句返回的数据行数   
    %found  布尔型 最近的FETCH语句返回一行数据则为真,否则为假   
    %notfound  布尔型 与%FOUND属性返回值相反   
    %isopen 布尔型 游标已经打开时值为真,否则为假  

         实例:

    fetch emp_cursor into v_ename;   
       exit when emp_cursor%notfound;  
  • 相关阅读:
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月19日)
    2016年小升初海淀区全部初中排名分析
    LVM Linear vs Striped Logical Volumes
    Spring Data Redis实现消息队列——发布/订阅模式
    Redis Pubsub命令用法
    mysql 截取身份证出生日期
    MA均线组合
    Eclipse代码格式化规范
    JSON Web Token实际应用
    JSON Web Token单点登录设计
  • 原文地址:https://www.cnblogs.com/jkzr/p/10238889.html
Copyright © 2011-2022 走看看