zoukankan      html  css  js  c++  java
  • 【PLSQL】游标

    Oracle中的SQL在执行时需要分配一块内存区域,这块内存区域叫做上下文区。
    上下文区中记录了SQL语句的处理信息,这些信息包括:查询返回的数据行、查询所处理的数据的行号、指向共享池中的已分析的SQL语句。
    在PL/SQL中游标可以分为以下两类:
    显式游标:使用CURSOR语句显式定义的游标,需要手动打开和关闭。
    隐式游标:Oracle为DML和SELECT..INTO 语句分配的游标。隐式游标不用显式的打开和关闭。
    定义游标:
    CURSOR cursor_name[parameter_list]
    [RETURN return_type]
    IS query
    [FOR UPDATE [OF (column_list)][NOWAIT]];
    打开游标:
    OPEN cursor_name[(parameter_values)];
    提取游标数据:
    FETCH cursor_name INTO variable_name(s)|PL/SQL_record;

    一个简单的定义游标、打开游标、提取游标的代码示例:
    DECLARE
      DEPT_ROW DEPT%ROWTYPE;
      CURSOR DEPT_CUR IS
      SELECT * FROM DEPT;
    BEGIN
      OPEN DEPT_CUR;
      FETCH DEPT_CUR INTO DEPT_ROW;
      DBMS_OUTPUT.PUT_LINE(DEPT_ROW.DEPTNO || ' ' || DEPT_ROW.DNAME || ' ' || DEPT_ROW.LOC);
      CLOSE DEPT_CUR;
    END;

    游标的四大属性:
    %FOUND:判断是否从结果集中提取了数据。当游标中有可以提取的数据时返回True,没有的时候返回False。
    %ISOPEN:判断对应的游标变量是否打开,如果游标变量打开,则返回True;否则返回False。
    %NOTFOUND:当没有从游标中提取到数据时,返回True,否则返回False。
    %ROWCOUNT:用于返回到目前为止从游标中提取到的记录的行数。初始值是0,每提取一条数据,%ROWCOUNT值会加1。

  • 相关阅读:
    实体ip 虚拟ip 固定ip 动态ip
    mysql数据库性能调优总结积累
    Java项目相关监控与调优
    线程锁与避免线程锁 线程锁检测
    在Eclipse中使用JUnit4进行单元测试(高级篇)
    MySQL性能优化的21条最佳经验【转】
    在Eclipse中使用JUnit4进行单元测试(中级篇)
    在Eclipse中使用JUnit4进行单元测试(初级篇)
    Windbg学习使用
    性能测试积累总结
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366624.html
Copyright © 2011-2022 走看看