• 显式游标
  • 隐式游标:如果在PL/SQL程序段中使用SELECT语句进行操作,PL/SQL 会隐含的处理游标定义,即为隐式游标。这种游标不需要像显式那样声明,也不必打开关闭。
    •  CREATE OR REPLACE PROCEDURE CX_XM
      (in_xh IN char,out_xm OUT varchar2)
      AS
      BEGIN
      SELECT 姓名 INTO out_xm
      FROM XSB
      WHERE 学号=in_xh AND ROWNUM=1;
      DBMS_OUTPUT.PUT_LINE(out_xm);
      END CX_XM;
    • 注意
      1. 每一个隐式游标必须有一个INTO
      2. 与显式游标一样,就收数据的目标变量的数目、类型要与SELECT列表的一致。
      3. 隐式游标一次仅能返回一行数据,使用时必须检查一场,最常见的异常有“NO_DATA_FOUND"&"TOO_MANY_ROWS".
      4. 为确保隐式游标仅返回一行数据,可用ROWCOUNT=1来限定,表示返回第一行数据。
  • 游标for循环
     FOR<变量名>IN<游标名>[(<参数1>[,<参数2>...])]LOOP
    语句段
    END LOOP;
  • 游标变量REF CURSOR
    • 定义CURSOR类型

      TYPE<REF CURSOR 类型名>
      IS
      REF CURSOR[RETURN<返回类型>]; eg:
      DECLARE
      TYPE xs_cur
      IS
      REF CURSOR RETURN XSB%ROWTYPE;

      REF CURSOR类型既可以是强类型,也可以是弱类型。强REF CURSOR类型有返回类型;而弱类型没有

       DECLARE
      TYPE xs_cur IS REF CURSOR RETURN XSB%ROWTYPE; /*强类型*/
      TYPE mycur IS REF CURSOR; /*弱类型*/
  • 带参数的游标
    •  游标的参数定义与子程序的参数定义完全相同
      意义在于传递一个参数给游标指定取哪部分的内容
      <参数名>[参数模式]<参数类型> ;参数模式默认为IN
      用open打开游标时,需要提供对应的实参
    • 实例
       /*查询各部门的雇员情况*/
      create or replace procedure proc as
      BEGIN
      declare
      cursor dept_cur IS
      select department_id from departments;
      v_eid employees.employee_id % type;
      v_sal employees.salary % type;
      v_dept employees.department_id % type;
      cursor emp_cur(v_deptid number) is
      select employee_id,salary from employeeS where department_id=v_deptid;
      BEGIN
      for dept_record in dept_cur LOOP
      EXIT WHEN DEPT_CUR%NOTFOUND;
      OPEN EMP_CUR(dept_record.DEPARTMENT_ID);
      LOOP
      fetch emp_cur into v_eid,v_sal;
      EXIT WHEN EMP_CUR%NOTFOUND;
      insert into temp values(v_eid,v_sal);
      commit;
      end loop;
      close emp_cur;
      end loop;
      END;
      end proc;

oracle 学习(四)游标的更多相关文章

  1. (七)Oracle学习笔记—— 游标

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

  2. oracle学习 九 游标的使用(持续更)

    为什么要使用? 笔者查阅了一些资料之后得到的结论是, 关系型数据库是面向集合的,而游标是面向行的,游标可对取出来的集合(结果集)中每一行进行相同或不同的操作,还提供对基于游标位置而对表中数据进行删除或 ...

  3. oracle学习 四(持续更新中)无法为表空间 MAXDATA 中的段创建 INITIAL 区

    解决建立表的时候出现的 ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区 出现这个问题是因为表空间的大小不足,可以给他扩容这样的话也会多出来一个数据文件.具体写法如下 ...

  4. Oracle学习(四):组函数

    1.知识点:能够对比以下的录屏进行阅读 SQL> --组函数类型:avg,count,max.min,sum SQL> --工资总额 SQL> select sum(sal) fro ...

  5. Oracle学习(七)游标

    一.简介 定义 实质上是数据集,类似数组一样,把查询的数据集存储在内存当中. 使用时可以通过游标指向其中一条记录,也可以通过循环游标达到循环数据集的目的. 游标的种类 显式游标: 使用之前必须得先声明 ...

  6. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  7. oracle学习--循环语句

    oracle学习--循环语句  loop循环: create or replace procedure pro_test_loop is i number; begin i:=0; loop i:=i ...

  8. Oracle 学习(scott方案)

      Oracle学习中,重点是sql语句的学习,而所有的sql语句都要在scott用户下完成. 熟悉这个用户下的四张表,是必要的. 查看所有表名: SELECT * FROM tab; 查看每张表的结 ...

  9. Oracle学习-Power Designer、visio 2003、Oracle sql developer、OEM、expdp

    Oracle的体系太庞大了.对于刚開始学习的人来说,难免有些无从下手的感觉. 经过一学期的学习对Oracle学习有了一些深入的了解,由于之前学习过Oracle的一些主要的知识.所以学习起来上手比較快一 ...

  10. oracle存储过程和游标的使用

    oracle存储过程和游标的使用 (2011-04-19 14:52:47) 转载▼ 游标: 用来查询数据库,获取记录集合(结果集)的指针,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情 ...

随机推荐

  1. VM ESXi虚拟化使用学习笔记

    由于疫情原因,没有条件介绍安装部分的内容,也没有安装部分内容的相关截图,所以安装部分可以选择网上资料.但是只要熟练安装CentOS系统的,基本安装ESXi一看就会,设置主机地址方面有一定图形化界面,比 ...

  2. 九、React中的组件、父子组件、React props父组件给子组件传值、子组件给父组件传值、父组件中通过refs获取子组件属性和方法

    一.概述 React中的组件: 解决html 标签构建应用的不足. 使用组件的好处:把公共的功能单独抽离成一个文件作为一个组件,哪里里使用哪里引入. [父子组件]:组件的相互调用中,我们把调用者称为父 ...

  3. 10 ~ express ~ 使用 cookie 保存用户 信息

    思维导图: (1) 保存 cookie (2)销毁 cookie 一,保存 cookie 1,app.js  . 新增代码 var Cookies = require('cookies') /** * ...

  4. Nginx、MySQL、PHP 编译安装

    RHEL 7.0 编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14运行环境 准备篇: RHEL 7.0系统安装配置图解教程 http://www.jb51.net/os/192 ...

  5. Loadrunner安装与破解

    一.安装loadrunner 1. 点击setup.exe 2. 点击安装完整程序 3. 点击确定,安装必需程序 4. 安装vc2005的时候报了如下错,导致无法继续安装,没有报错可跳过第五步 5. ...

  6. 大二暑假第四周总结--开始学习Hadoop基础(三)

    简单学习云数据库系统架构(以UMP系统为例) 一.UMP系统概述 低成本和高性能的MySQL云数据库方案 二.UMP系统架构 架构设计遵循以下原则: 保持单一的系统对外入口,并且为系统内部维护单一的资 ...

  7. n以内的素数

    /* 问题描述: 质数又称素数.一个大于1的自然数,除了1和它自身外, 不能被其他自然数整除的数叫做质数: 问题分析: 素数只能被1和自身整除的数.判断一个数是不是素数, 是用2和这个数之间的所有的数 ...

  8. HDU—4699 Editor 双向链表+子集和

    惨.今天聪哥选了2013 多校10做训练,结果一题都没做出来.这个题目是数据结构,正好是我强项 如果只是插入 删除 光标左右移动,那都小菜,用链表全解决,关键是那个Q k 要求 a1到aq的连续子序列 ...

  9. 吴裕雄--天生自然TensorFlow2教程:张量排序

    import tensorflow as tf a = tf.random.shuffle(tf.range(5)) a tf.sort(a, direction='DESCENDING') # 返回 ...

  10. meta标签小结

    1.手机页面所需: <meta name="viewport" content="width=device-width,initial-scale=1.0,mini ...