oracle存储过程中游标的使用

一. 使用for循环游标:

1. 定义游标(游标就是一个小集合)

2. 定义游标变量

3. 使用for循环游标

declare
  -- 定义游标c_job
  cursor c_job is
    select empno, ename, job, sal from emp where job = 'MANAGER';

  -- 定义游标变量c_row
  c_row c_job%rowtype;
begin
  -- 循环游标,用游标变量c_row存循环出的值
  for c_row in c_job loop
    dbms_output.put_line(c_row.empno || '-' || c_row.ename || '-' ||
                         c_row.job || '-' || c_row.sal);
  end loop;
end;

2. fetch游标:

使用的时候必须明确的打开和关闭

declare
  --定义游标c_job
  cursor c_job is
    select empno, ename, job, sal from emp where job = 'MANAGER';

  --定义游标变量c_row
  c_row c_job%rowtype;
begin
  open c_job;
  loop
    --提取一行数据到c_row
    fetch c_job into c_row;

    --判读是否提取到值,没取到值就退出
    exit when c_job%notfound;
    dbms_output.put_line(c_row.empno || '-' || c_row.ename || '-' ||
                         c_row.job || '-' || c_row.sal);
  end loop;

  --关闭游标
  close c_job;
end;
时间: 2024-08-10 06:24:16

oracle存储过程中游标的使用的相关文章

Mysql中游标的使用

最近在使用Mysql时,经常需要用到游标,所以将使用方法做下记录以备日后查看.(这里只是为了说明游标的用法,不会涉及复杂的业务逻辑,所以举的例子可能并不恰当) 首先,创建两张表departmentinfo(部门信息表)和employeeinfo(员工信息表) 表结构如下: 表departmentinfo存储部门名及部门总销售额 表employeeinfo存储员工名.员工所在部门ID及员工个人销售额 表中初始数据如下: 各部门总销售额均为0 员工分别在3个部门下,且都有自己的销售额 然后创建存储过

SQL Server 中游标的使用

1.游标是行读取,占用资源比sql多2.游标的使用情景:  ->现存的系统中使用的是游标,查询必须通过游标来实现  ->用尽了while.子查询临时表.表变量.自定义函数以及其他方式仍然无法实现的时候,使用游标3.T-SQL 中游标的生命周期由5部分组成   ->定义游标:游标的定义遵循T-Sql的定义方法,赋值有两种方法,定义时赋值,和先定义后赋值,定义游标像定义其他局部变量一样前面要加@,注意如果是全局的游标,只支持定义时直接赋值,并且不能在游标前面加@   --定义时直接赋值   

oracle存储过程实例

oracle存储过程实例 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比,存储过程有非常多长处,详细归纳例如以下: * 存储过程和函数以命名的数据库对象形式存储于数据库其中.存储在数据库中的长处是非

java怎样将一组对象传入Oracle存储过程

java怎样将一组对象传入Oracle存储过程.须要注意的是jar包是有要求的,假设使用不当会导致仅仅有数字能传过去,字符串传只是去.假设是Oracle11g则须要选用例如以下的jar包,F:\app\Administrator\product\11.2.0\dbhome_1\jlib\orai18n.jar. D:\program\weblogic\oracle_common\modules\oracle.jdbc_11.2.0\ojdbc6.jar 样例例如以下: CREATE OR REP

springMVC + oracle存储过程 构建高性能灵活易维护的java web架构

MVC让简单的业务也变得复杂 不知道你在使用MVC模式开发项目的时候是否觉得很麻烦,一个简单的增删改查动作却要涉及到多个文件操作. 以一条数据增加为例说明. 假设我们使用hibernate并且dao层是已经封装好的 从图中可以看出如果我们在系统中写一个增加功能需要自己动手写的地方至少是 jsp , action , service,servicesImpl 四层. 如果是复杂的添加操作那么我们很可能还会自己定义dao层的接口和方法,那样就是6层操作了. 如果使用mybatis 至少也是写4层,常

Oracle 存储过程

存储过程:就是一组用于完成特定数据库功能的SQL 语句集,该SQL语句集经过编译后存储在数据库系统中.在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作. Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常. 1 create or replace procedure 过程名 2 as ...; --声明语句段 3 begin 4 ...; --执行语句段 5 exception --异常处理语句段 6 ...

Oracle 存储过程定义和优点及与函数区别

定义: 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可.在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包. 优 点: 1.(预编译)存储过程只在创造

jdbc调用 oracle 存储过程操作

创建有参存储函数findEmpNameAndSal(编号),查询7902号员工的的姓名和月薪,[返回多个值,演示out的用法]当返回2个或多个值,必须使用out符号当返回1个值,就无需out符号 create or replace function findEmpNameAndSal(pempno in number,pename out varchar2) return numberas psal emp.sal%type;begin select ename,sal into pename,

Oracle ——存储过程

1.带参数的存储过程CREATE OR REPLACE PROCEDURE sp_pro2 (spname VARCHAR2, newsal NUMBER) ISBEGIN     UPDATE emp SET sal = newsal WHERE ename=spname;END; --参数VARCHAR2不需要指定大小exec sp_pro2('SMITH',10);或者call sp_pro2('SMITH',10); Oracle --存储过程,布布扣,bubuko.com