• 【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。

  • 相关阅读:
    Deno下一代Nodejs?Deno初体验
    2018年JavaScript现状报告
    国企程序员是一种怎样的体验
    前端面试送命题(二)-callback,promise,generator,async-await
    Nodejs mongoose 详解
    JS的进阶技巧
    Nodejs经验谈
    给腾讯云Linux主机创建Swap文件
    LVS跨网段DR模式并使用ldirectord实现RS高可用性
    LAMP配置NFS页面共享,autofs实现挂载,DNS实现名称解析,纯手动操作
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366624.html
Copyright © 2020-2023  润新知