• 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 因此隐式游标中不需要打开游标关闭游标,也不需要对游标的状态进行检查。

  • 相关阅读:
    TensorboardX的使用【有手就⭐系列】
    Python学习记录
    es 之 自定义 mapping(五)
    es 索引和文档 API (四)
    布尔查询(三)
    term 和 match 查询(二)
    使用 Python 批量将数据插入到 ES中
    【flask + vue 前后端分离博客】设计 User 用户(三)
    【flask + vue 前后端分离博客】使用 axios 访问接口(二)
    【flask + vue 前后端分离博客】创建第一个 Flask RESTFul(一)
  • 原文地址:https://www.cnblogs.com/brother-four/p/6523415.html
Copyright © 2020-2023  润新知