游标:指针,指向一个查询结果集的指针
1.SQL语句和游标的对应
单行查询语句-----可以定义为游标,也可以不定义
多行查询结果-----必须定义出游标,然后才能通过游标来提取多个结果
增删改语句-------游标是默认设置的
游标的作用:用来处理多行查询结果,他指定了一种多行结果集中提取数据的方式
2.游标的使用:
A.显示游标
---------------------------------------------------
declare
--声明一个游标
cursor cur is select ename,job,sal from emp;
v_name emp.ename%type;
v_job emp.job%type;
v_sal emp.sal%type;
begin
--打开一个游标
open cur;
--提取一行
fetch cur into v_name,v_job,v_sal;
dbms_output.putline(v_name||v_job||v_sal);
--循环提取所有的纪录
while cur%found loop--如果下一条纪录存在
dbms_output.putline(v_name||v_job||v_sal);
fetch cur into v_nmame,v_job,v_sal;--提取下一行
end loop;
--关闭
close cur;
exception
when others then
dbms_output.putline(SQLCODE||SQLERRM);
end;
---------------------------------------------
declare
cursor cur is select * from emp;
rec emp%rowtype;-- 提取现有标emp作为一个新的纪录类型
begin
open cur;
fetch cur into rec;
while cur%found loop
dbms_output.putline(rec.empno||rec.ename||rec.sal);
fetch cur into rec;--提取下一行
end loop;
--关闭
close cur;
exception
when others then
dbms_output.putline(SQLCODE||SQLERRM);
end;