zoukankan      html  css  js  c++  java
  • 游标

    游标:游动的光标。游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了。将游标放置到某行后,即可对该行数据进行操作,最常见的操作是提取当前行数据。

    游标分两种:显式游标, 隐式游标

             隐式游标 :  不需要声明,使用时也不需要执行打开和关闭操作。实际上,就是在Select语句中增加了INTO子句,把结果集自动读取到指定的变量中。

      FI : 使用SELECT语句声明隐式游标,从Students表中读取Sname字段的值到变量BugsBug:

          显式游标:显式游标需要声明,在使用之前需要打开游标,使用完成后要关闭游标。使用显式游标的步骤包括:
                            (1)声明游标。
                            (2)打开游标。
                            (3)读取数据。
                            (4)关闭游标。

    声明游标语句CURSOR

      DECLARE CURSOR <游标名>
      [ (<参数列表>) ]
      IS
      <SELECT语句>;

    FI : 声明一个游标BugsBug,读取指定类型的用户信息:

    为什么出错因为这只是程序的一部分而已....

    打开游标语句OPEN:
      OPEN <游标名> [ (<参数列表>) ];

    FI :open BugsBug(1);

    游标取值语句FETCH。游标取值语句FETCH的基本语法结构如下:
      FETCH <游标名> INTO <变量列表>;

    FI :fetch BugsBug into 声明列表变量“,”分割

    关闭游标语句CLOSE:
      CLOSE <游标名>;

    FI : close BugsBug;

    游标属性

      %ISOPEN属性 判断游标是否被打开,如果打开,则%ISOPEN等于TRUE,否则等于FALSE。

    %FOUND属性和%NOTFOUND属性
    %FOUND属性用来判断游标所在的行是否有效,如果有效,返回TRUE,无效时返回FALSE。

    %ROWCOUNT属性 返回到当前位置为止游标读取的记录行数。

    游标FOR循环

        游标FOR循环是显式游标的一种快捷使用方式,它使用FOR循环依次读取结果集中的行数据。
    当FOR循环开始时,游标被自动打开(不再需要OPEN语句);
    每循环一次,系统自动读取游标当前行的数据(不需要使用FETCH语句);
    当退出循环时,游标自动关闭(不需要使用CLOSE语句)。

    游标FOR循环通常与PL/SQL记录一起使用。
    PL/SQL记录(RECORD)是由一组数据构成的逻辑单元,并不保存在数据库中,与变量一样,保存在内存空间中。
    使用记录时,需要先定义记录的结构,然后声明记录变量。
    定义记录类型的基本语法如下:
       TYPE  <记录类型名>  IS RECORD   (字段声明  [,字段声明] …);
    定义记录变量的方法与定义普通变量的方法相同,语法如下:
     <记录变量名>   <记录变量类型>

    FI :声明记录类型TBugsBug和定义记录变量BugsBug:

    典型游标FOR循环需要先对游标进行声明,然后才可以使用。典型游标FOR循环的语法说明如下:
       FOR <记录名> IN <游标名> LOOP
          语句1;
          语句2;
          …
          语句n;
       END LOOP;

    带子查询的典型游标FOR循环的语法说明如下:
       FOR <记录名> IN <SELECT子查询> LOOP
          语句1;
          语句2;
          …
          语句n;
       END LOOP;

  • 相关阅读:
    Scrapy
    关于函数名称和库函数名称冲突的故事
    Hibernate的一级缓存
    spring-mvc 与 openid4java
    openid4java 使用记录[转载]
    Linux定时任务Crontab详解_定时备份
    Spring的线程池ThreadPoolTaskExecutor使用案例
    BZOJ4275 : [ONTAK2015]Badania naukowe
    BZOJ4137 : [FJOI2015]火星商店问题
    BZOJ2832 : 宅男小C
  • 原文地址:https://www.cnblogs.com/wjshan0808/p/3132375.html
Copyright © 2011-2022 走看看