本期主题  灰蓝

    游标用来处理从数据库中检索的多行记录(使用SELECT语句)存放的是select 的结果

  利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集

--隐式游标

begin

  update v_emp set ename='陈明羽' where empno = 7369;

  if SQL%found then

    dbms_output.put_line('隐式游标被找到');

  end if;

end;

-- 显示游标被用于处理返回多行数据的SELECT 语句

-- 方式1

declare

  v_row v_emp%rowtype;

  --创建游标

  cursor c_s is

      select * from v_emp;

  begin

  --打开游标

  open c_s;

  loop

    fetch c_s

      into v_row;

    exit when c_s%notfound;

      dbms_output.put_line(v_row.ename);

      dbms_output.put_line(v_row.sal);

    end loop;

    --关闭游标

  close c_s;

end;

-- 方式2

declare

  v_row v_emp%rowtype;

  cursor cur is select * from v_emp;

  begin

  -- for循环 不用打开和关闭游标

  for v_row in cur loop

    dbms_output.put_line(v_row.ename);

    dbms_output.put_line(v_row.sal);

  end loop;

end;

-- 方式3

declare

  v_row v_emp %rowtype;

  cursor cur is

    select * from v_emp;

  begin

  open cur;

  --赋值到一个变量

  fetch cur

    into v_row;

  while cur%found loop

    dbms_output.put_line(v_row.ename);

    dbms_output.put_line(v_row.sal);

    fetch cur

      into v_row;

  end loop;

  close cur;

end;

-- ref游标 动态sql查询 有return a_rows%rowtype的是强类型的

declare

  type cur is ref cursor;

  a_cur cur;

  a_row v_emp%rowtype;

 begin

  open a_cur for

    select * from v_emp;

    fetch a_cur into a_row;

   while a_cur%found loop

      dbms_output.put_line(a_row.ename);

      dbms_output.put_line(a_row.sal);

      fetch a_cur

        into a_row;

    end loop;

    close a_cur;

 end;

oracle 之 游标的更多相关文章

  1. 设置ORACLE数据库游标大小

    先用超级管理员(sys)登陆服务器: sqlplus "sys/***@orcl as sysdba" 连接到:Oracle 查看ORACLE最大游标数: SQL> show ...

  2. Oracle使用游标为所有用户表添加主键语句

    应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在I ...

  3. Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串

    应用场合:参考网上查询数据表的所有字段名代码,使用游标生成指定单个表的所有字段名跟逗号组成的用于select  逗号隔开的字段名列表 from字符串等场合. 查询结果输出如下: 当前数据表TB_UD_ ...

  4. Oracle使用游标删除所有用户数据表中的所有记录脚本

    应用场景:因为数据库中的数据涉及机密信息,希望一次性能删除掉所有数据,只保留数据表结构,供新项目开发程序用 测试结果:经查询已删除所有数据 存在问题:数据表如果存在外键的话下面脚本可能执行不成功,请自 ...

  5. Oracle最大游标数控制

    /************************************************************************ ********* Oracle最大游标数控制 ** ...

  6. Oracle PLSQL游标、游标变量的使用

    参考文章:https://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html 在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实 ...

  7. Oracle使用游标查询所有数据表备注

    功能作用:应用对应的SQL语句,能方便快速的查询Oracle数据库指定用户的所有用户表说明,快速知道每个数据表是做什么的,方便写文档和方案. 运行环境:搭建好Oracle数据库,并使用PQ/SQL D ...

  8. Oracle数据库—— 游标的创建和应用

    一.涉及内容 游标的创建与应用 二.具体操作 (一)填空题 1.PL/SQL 程序块主要包含3个部分:声明部分.(执行部分 ).异常处理部分. 2.自定义异常必须使用(RAISE )语句引发. (二) ...

  9. Oracle基础 游标

    一.游标 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下 ...

  10. Oracle 基础 游标

    一:游标的基本原理 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域, ...

随机推荐

  1. Python高级特性(1):Iterators、Generators和itertools(参考)

    对数学家来说,Python这门语言有着很多吸引他们的地方.举几个例子:对于tuple.lists以及sets等容器的支持,使用与传统数学类 似的符号标记方式,还有列表推导式这样与数学中集合推导式和集的 ...

  2. js-方法

    最近觉得自己的基础貌似太薄弱了,找了几本电子书,整理了一下基础的 方法: Concat:返回一个新数组 var a=['a','b','c']; var b=['x','y','z']; var c= ...

  3. DOM9大节点

    ELEMENT_NODE 1 元素节点 常用 ATTRIBUTE_NODE 2 属性节点 常用 TEXT_NODE 3 文本节点 常用 CDATA_SECTION_NODE 4 CDATA区段   E ...

  4. iOS沙盒目录

    出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致. 一.沙盒中 ...

  5. [原创]NDT方法在SLAM中的应用

    NDT概念 正态分布变换(Normal Distribution Transformation , NDT)概率密度函数( Probability Density Function, PDF)Firs ...

  6. 修改easyui中datagrid表头和数据不能分开对齐的BUG。

    easyui的datagrid中表头和列只能同时全部向左对齐,全部向右对齐或者居中对齐. 有时候有需求,数据向左或向右,表头居中对齐. 在不修改源码的情况下.下面的代码可以实现该功能. 把下面代码放在 ...

  7. 函数类型+WINAPI+函数名(例如inline DWORD static WINAPI RecordToKeys(const DRWT& theDRWT,WTSBH* pKey,DWORD dwMaxNum)

    winapi标识符在WINDEF.H定义,语句如下: #define winapi __stdcall 让我们说说这个__stdcall stdcall调用约定 stdcall很多时候被称为pasca ...

  8. AMQP

    AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.基于此协议的客户端 ...

  9. Java基本语法

    一:跨行 Java变量不能跨行,如:String na me = “张三"; 字符串不能跨行,如:String a = "xxxxxxxxxx yyyyyyyy"; 二: ...

  10. 最长公共子序列(加强版) Hdu 1503 Advanced Fruits

    Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...