游标(cursor)能够根据查询条件从数据表中提取一组记录,将其作为一个临时表置于数据缓冲区中,利用指针逐行对记录数据进行操作。
举例带参数的显示游标:
如下是查询Oracle Scott下的emp表中empno为7788的姓名和工资。
declare
cursor cur_emp(p_empno number) is
select e.ename, e.sal from scott.emp e where emp.empno = p_empno; --声明游标
v_empno emp.empno%type := 7788;
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
open cur_emp(v_empno); --打开游标
--循环取出
loop --loop循环
fetch cur_emp
into v_ename, v_sal; --提取记录
exit when cur_emp%notfound;--退出循环
dbms_output.put_line(v_ename || '的工资是' || v_sal);
end loop;
close cur_emp; --关闭游标
end;
举例不带参数的显示游标:
如下是查询Oracle Scott下的emp表中empno为7788的姓名和工资。
declare
cursor cur_emp is
select e.ename, e.sal from scott.emp e where e.empno=7788 ; --声明游标
v_ename emp.ename%type;
v_sal em