光标(cursor)用于存储一个查询返回的多行数据。
声明光标:cursor 光标名称 is select …;
cursor cur is select job from emp;
光标cur代表了emp表中的job字段的所有值。
打开光标语句:
open 光标名称;
取一行光标的值:
fetch 光标名称 into 变量名;
关闭光标:
close 光标名称;
例子:
declare
cursor cur_dept is select dname,loc from dept; --声明光标
p_dname dept.dname%type; --定义变量,数据类型与dept表中的dname一致
p_loc dept.loc%type;
begin
open cur_dept; --打开光标
loop --循环,在循环中取出每一行内容
exit when cur_dept%notfound; --退出条件
fetch cur_dept into p_dname,p_loc;
dbms_output.put_line(p_dname||'的位置是'||p_loc);
end loop;
close cur_dept;
end;
/