游标的for循环
来源:互联网 发布:绅士软件 编辑:程序博客网 时间:2024/06/05 17:34
原文链接:http://www.cnblogs.com/fjfzhkb/archive/2007/09/12/891031.html
(1)FOR循环游标 (常用的一种游标)
--<1>定义游标
--<2>定义游标变量
--<3>使用for循环来使用这个游标
--前向游标 只能往一个方向走
--效率很高
declare
--类型定义
cursor cc is select empno,ename,job,sal
from emp where job = 'MANAGER';
--定义一个游标变量
ccrec cc%rowtype;
begin
--for循环
for ccrec in cc loop
dbms_output.put_line(ccrec.empno||'-'||ccrec.ename||'-'||ccrec.job||'-'||ccrec.sal);
end loop;
end;
值得注意的是, ccrec cc%rowtype;这个语句不是必须的。他可以在for循环中隐式声明。
(2) fetch游标
--使用的时候 必须要明确的打开和关闭
declare
--类型定义
cursor cc is select empno,ename,job,sal
from emp where job = 'MANAGER';
--定义一个游标变量
ccrec cc%rowtype;
begin
--打开游标
open cc;
--loop循环
loop
--提取一行数据到ccrec中
fetch cc into ccrec;
--判断是否提取到值,没取到值就退出
--取到值cc%notfound 是false
--取不到值cc%notfound 是true
exit when cc%notfound;
dbms_output.put_line(ccrec.empno||'-'||ccrec.ename||'-'||ccrec.job||'-'||ccrec.sal);
end loop;
--关闭游标
close cc;
end;
(3)参数游标
按部门编号的顺序输出部门经理的名字
declare
--部门
cursor c1 is select deptno from dept;
--参数游标c2,定义参数的时候
--只能指定类型,不能指定长度
--参数只能出现在select语句=号的右侧
cursor c2(no number,pjob varchar2) is select emp.* from emp
where deptno = no and job=pjob;
c1rec c1%rowtype;
c2rec c2%rowtype;
--定义变量的时候要指定长度
v_job varchar2(20);
begin
--部门
for c1rec in c1 loop
--参数在游标中使用
for c2rec in c2(c1rec.deptno,'MANAGER') loop
dbms_output.put_line(c1rec.deptno||'-'||c2rec.ename);
end loop;
end loop;
end;
- 游标的FOR循环
- 游标的for循环
- 游标,动态,for循环
- 游标,动态,for循环
- Oracle 游标for循环
- Oracle游标for循环
- oracle游标:fetch和for循环游标
- PL/SQL 游标FOR循环
- ORACLE存储过程的游标和for循环
- PL/SQL之游标的FOR循环使用
- SQL中的循环、for循环、游标
- SQL中的循环、for循环、游标
- SQL中的循环、for循环、游标
- SQL中的循环、for循环、游标
- SQL中的循环、for循环、游标
- SQL中的循环、for循环、游标
- SQL中的循环、for循环、游标
- sql中的循环,for循环,游标实现
- c++ stl--map
- C++学习笔记一
- __declspec(dllimport)的作用
- android studio执行 Information:Gradle tasks [:app:assembleDebug]失败处理
- 设计模式六大原则
- 游标的for循环
- RasCustomHangUp
- java.lang.Class类 和 反射
- Android数据库
- ubuntu下硬盘数据迁移
- centos6.6 安装mysql5.7.14
- Day1
- 战斗场景制作之怪物的AI
- 第一篇博客,以后多多总结