博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORACLE 的游标
阅读量:6479 次
发布时间:2019-06-23

本文共 1574 字,大约阅读时间需要 5 分钟。

Oracle数据库的存储过程进行循环时,有两种常用的方式

1、静态游标:显示游标

--A、简单显示游标

declare

  cursor cursor_emp is select * from emp;--声明一个游标

  v_emp_record emp%rowtype;

begin

  --打开游标

  open cursor_emp;

  loop

    --提取行到变量

    fetch cursor_emp into v_emp_record;

    --判断是否有数据

    exit when cursor_emp%notfound;

    --显示数据

    dbms_output.put_line('员工编号:'||v_emp_record.empno||',姓名:'||v_emp_record.ename);

  end loop;

  --关闭游标

 

--B、基于游标定义记录变量

declare

  cursor cursor_emp is select * from emp;--声明一个游标

  v_emp_record emp%rowtype;

begin

  --打开游标:如果没有打开

  if not cursor_emp%isopen then

     open cursor_emp;

  end if;

  loop

    --提取行到变量

    fetch cursor_emp into v_emp_record;

    --判断是否有数据

    exit when cursor_emp%notfound;

    --显示数据

    dbms_output.put_line('员工编号:'||v_emp_record.empno||',姓名:'||v_emp_record.ename);

  end loop;

  --关闭游标

  close cursor_emp;

end;

 

--C、带参数显式游标

declare

  cursor cursor_emp(no number) is select * from emp where deptno=no;--声明一个带参数的显示游标

  v_emp_record emp%rowtype;

begin

  --打开游标:如果没有打开

  if not cursor_emp%isopen then

     open cursor_emp(10);

  end if;

  loop

    --提取行到变量

    fetch cursor_emp into v_emp_record;

    --判断是否有数据

    exit when cursor_emp%notfound;

    --显示数据

    dbms_output.put_line('员工编号:'||v_emp_record.empno||',姓名:'||v_emp_record.ename);

  end loop;

  --关闭游标

  close cursor_emp;

end;

 

--D、循环游标

declare

  cursor cursor_emp is select * from emp;

begin

  --for循环

  for i in cursor_emp loop

    dbms_output.put_line('员工编号:'||i.empno||',姓名:'||i.ename);

  end loop;

end;

 

--for循环

declare

  --cursor cursor_emp is select * from emp;

begin

  --for循环:动态游标

  for i in (select * from emp) loop

    dbms_output.put_line('员工编号:' || i.empno || ',姓名:' || i.ename);

  end loop;

end;

 

转载于:https://www.cnblogs.com/lijm/p/6491554.html

你可能感兴趣的文章
利用simulink分析系统各种传递函数的BODE图、阶跃响应、单位脉冲响应
查看>>
在iOS当中发送电子邮件和短信
查看>>
python的单例模式
查看>>
13~1003的和
查看>>
myeclipse启动jboss报ERROR [MainDeployer] Could not create deployment
查看>>
pycharm如何新项目如何不默认创建虚拟环境(吐槽)
查看>>
Loadrunner检查点小结(很经典)
查看>>
MySQL字段类型详解
查看>>
ORACLE 的游标
查看>>
虚拟机安装的UBUNTU全屏的方法:
查看>>
java虚拟机类加载器
查看>>
ASP.NET状态管理之八(会话Session)
查看>>
background
查看>>
转载:大型网站架构演变和知识体系
查看>>
set集合
查看>>
SVN服务器的搭建和使用
查看>>
mvc中枚举的使用和绑定枚举值到DropDownListFor
查看>>
多目标跟踪的评价指标
查看>>
python 生成器
查看>>
HTTPS(SSL)详解以及PHP调用方法
查看>>