光标
就是一个结果集(Result Set)
光标的语法
CURSOR 光标名 [(参数名 数据类型[参数名,数据类型]..)]
IS SELECT 语句;
一个具体的光标
cursor c1 is select ename form emp;
从光标中取值
打开光标:
- open c1; (打开光标执行查询)
关闭光标:
- close c1; (关闭光标释放资源)
取一行光标的值:
- fetch c1 into pename; (取一行到变量中)
案例
--查询并打印员工的姓名和薪水
/*
1.光标的属性
%found %notfound
*/
SET SERVEROUTPUT ON
DECLARE
--定义一个光标
cursor cemp is select first_name,last_name,salary FROM EMPLOYEES;
--为光标定义对应的变量
pe_first_name employees.first_name%type;
pe_last_name employees.last_name%type;
psal employees.salary%type;
BEGIN
--打开光标
open cemp;
loop
--取一条记录
FETCH cemp into pe_first_name,pe_last_name,psal;
--exit when 没有取到记录;
exit when cemp%notfound;
--打印
DBMS_OUTPUT.PUT_LINE(pe_first_name||' '||pe_last_name||':'||psal);
end loop;
--关闭光标
close cemp;
end;
/