zoukankan      html  css  js  c++  java
  • orcale 之游标的属性

      无论是显式游标还是隐式游标都会有四个属性分别是:%ISOPEN、%FOUND、%NOTFOUND、%ROWCOUNT 下面我们分别对着几种属性进行分析。

    %FOUND

      该属性表示当前游标是否指向有效的一行,结果是一个Boolean 类型的。这个属性一般用来判断是否结束当前游标的使用。

    OPEN emp_cur; --打开游标
      --将第一行的数据放入变量中,之后游标后移
      FETCH emp_cur INTO emp_no, emp_nanme;
      LOOP
        EXIT WHEN NOT emp_cur%FOUND; --如果游标已经到末尾结束
        IF emp_no = '7839' THEN
          INSERT INTO t_emp values(emp_no,emp_nanme);
        else
          INSERT INTO t_emp2 values(emp_no,emp_nanme);
        END IF;
        FETCH emp_cur INTO emp_no, emp_nanme;
      END LOOP;
    CLOSE emp_cur; --关闭游标

      在隐式游标中引用方法为 SQL%FOUND。

    delete from student where sid = 1;
    if SQL%FOUND THEN
        INSERT INTO states values(1,1);
    else
        INSERT INTO states values(1,0);
    end if;

    %NOTFOUND

      这个属性和上面的 %FOUND 很类似,只不过结果相反。这里就不举例子了,大家自己练习下。

    %ROWCOUNT

      这个属性记录了游标取过记录的行数,也可以理解为当前游标所在的行数。这个属性在循环的时候十分有效。

    LOOP
        FETCH emp_cur INTO emp_no, emp_nanme;
        EXIT WHEN emp_cur%ROWCOUNT=10;
        ...
    END LOOP;

      在隐式游标中使用 %ROWCOUNT

    %ISOPEN

      顾名思义是表示游标是否处于打开的状态。在我们的实际使用前最好使用该属性进行检查。

    IF emp_cur%ISOPEN THEN
        FETCH emp_cur INTO emp_no, emp_nanme;
    ELSE
        OPEN emp_cur
    END IF;

      在隐式游标中可以使用 SQL%ISOPEN 进行引用,但是需要说的是隐式游标中 SQL%ISOPEN 总是为 TRUE 因此隐式游标中不需要打开游标关闭游标,也不需要对游标的状态进行检查。

  • 相关阅读:
    JQuery EasyUi之界面设计——通用的JavaScript
    easyui datagrid 行右键 动态获取并生成toolbar 按钮
    Jq基础拓展 json to String
    电信光纤猫(HG8245)破解教程 开启无线网、路由器功能(第二章)
    plsql 无需配置客户端连接.
    中文分词常用算法之基于词典的正向最大匹配
    中文分词常用算法之基于词典的逆向最大匹配
    SQL SERVER安装序列号
    查询锁事务及语句
    SQL Server 数据库备份
  • 原文地址:https://www.cnblogs.com/brother-four/p/6523415.html
Copyright © 2011-2022 走看看