oracle PL/SQL编程语言之游标的使用
(本文章内容仅在windows10下经测试能够运行,不能保证其他环境下的可靠性)
PL/SQL游标
概念:类似于集合
定义游标
关键字:cursor;
1、不带参数游标
语法:cursor 游标变量名 is 查询语句;
示例代码如下:
cursor c1 is select * from emp;
2、带参数游标
语法:cursor 游标变量名(参数名 数据类型...) is 查询语句(查询语句语句的右值可以使用游标参数);
示例代码如下:
cursor c2(dno emp.deptno%type) is select empno from emp where deptno = dno;
遍历游标
关键字:open;fetch;close;
1、不带参数的游标
语法:
open 游标变量名;
loop
fetch 游标变量名 into 变量名;
exit when 条件(常使用:游标变量名%notfound;)
循环体(使用变量执行其他语句)
end loop;
close 游标变量名;
示例代码如下:
open c1; loop fetch c1 into e; exit when c1%notfound; dbms_output.put_line(e.ename); end loop; close c1;
2、带参数的游标
语法:
open 游标变量名(实参列表);
loop
fetch 游标变量名 into 变量;
exit loop 条件(常使用:游标变量名%notfound;)
循环体(使用变量执行其他语句)
end loop;
close 游标变量名;
示例代码如下:
open c2(10); loop fetch c2 into eno; exit when c2%notfound; update emp set sal = sal + 10 where empno = eno; commit; end loop; close c2;
使用游标的两个简单案例
1、使用游标输出emp表所有员工姓名
示例代码如下:
--使用游标遍历输出emp表员工姓名 declare cursor c1 is select * from emp; e emp%rowtype; begin open c1; loop fetch c1 into e; exit when c1%notfound; dbms_output.put_line(e.ename); end loop; close c1; end;
2、使用游标给emp表部门编号为10的所有员工增加工资10
示例代码如下:
--使用游标给emp部门编号为10的员工涨10元工资 declare cursor c2(dno emp.deptno%type) is select empno from emp where deptno = dno; eno emp.empno%type; begin open c2(10); loop fetch c2 into eno; exit when c2%notfound; update emp set sal = sal + 10 where empno = eno; commit; end loop; close c2; end;
相关推荐
dreamhua 2020-01-31
zycchun 2020-10-16
liuyang000 2020-09-25
talkingDB 2020-06-12
Justdoit00 2020-04-26
lt云飞扬gt 2020-04-25
流云追风 2020-04-22
lt云飞扬gt 2020-04-21
yuanshuai 2020-03-06
dreamhua 2020-02-21
ALiDan 2020-02-18
whyname 2019-12-29
tanrong 2019-12-17
暗夜之城 2019-11-13
liuyang000 2019-11-01
dreamhua 2019-10-28
廖金龙 2016-01-04
cjylean 2010-11-30