一 定义
光标,也叫游标,就是一个结果集(Result Set)。
二 语法
CURSOR 光标名 [(参数名 数据类型[,参数名 数据类型]...)]
IS SELECT 语句;
三 光标用法
1、定义光标
cursor c1 is select ename from emp;
2、打开光标执行查询
open c1;
3、取一行到变量
fetch c1 into pename;
close c1;
四 实例
1、需求
使用光标查询员工姓名和工资,并打印。
2、代码
--查询并打印员工的姓名和薪水
/*
1.光标属性
%found %notfound
*/
set serveroutput on
declare
--定义一个光标
cursor cemp isselect ename,sal from emp;
--为光标定义对应的变量
pename emp.ename%type;
psal emp.sal%type;
begin
--打开光标
open cemp;
loop
--取一条记录
fetch cemp into pename,psal;
--思考:1循环什么时候退出?2fetch不一定能取到记录
--exitwhen没有取到记录
exitwhen cemp%notfound;
dbms_output.put_line(pename||'的薪水是'||psal);
end loop;
--关闭光标
close cemp;
end;
/
3、运行结果
SMITH的薪水是800
ALLEN的薪水是1600
WARD的薪水是1250
JONES的薪水是2975
MARTIN的薪水是1250
BLAKE的薪水是2850
CLARK的薪水是2450
SCOTT的薪水是3000
KING的薪水是5000
TURNER的薪水是1500
ADAMS的薪水是1100
JAMES的薪水是950
FORD的薪水是3000
MILLER的薪水是1300
PL/sql 过程已成功完成。