Oracle中的游标分为显示游标和隐式游标。
创新互联专注于朝阳企业网站建设,成都响应式网站建设公司,商城网站定制开发。朝阳网站建设公司,为朝阳等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
显示游标:
显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;显示游标的操作:打开游标、操作游标、关闭游标;
隐式游标:
隐式游标是在执行插入(insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的。PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它。
1. 用open打开的,用close关闭\x0d\x0adeclare\x0d\x0acursor mycursor is\x0d\x0aselect * from emp for update;\x0d\x0amyrecord emp%rowtype;\x0d\x0abegin\x0d\x0aopen mycursor;\x0d\x0aloop\x0d\x0afetch mycursor into myrecord;\x0d\x0aexit when mycursor%notfound;\x0d\x0aif (myrecord.sal=2000) then\x0d\x0aupdate emp\x0d\x0aset sal=2001\x0d\x0awhere current of mycursor;\x0d\x0aend if;\x0d\x0aend loop;\x0d\x0aclose mycursor;\x0d\x0acommit;\x0d\x0aend;\x0d\x0a2. 用for 循环的,循环完了就自己关了\x0d\x0adeclare\x0d\x0acursor mycursor is\x0d\x0aselect * from emp;\x0d\x0abegin\x0d\x0afor i in mycursor\x0d\x0aloop\x0d\x0adbms_output.put_line(i.job);\x0d\x0aend loop;\x0d\x0aend;
--Oracle PL/SQL
declare
--定义游标
cursor cur_test is
select * from emp;
v_emp emp%rowtype;
begin
--打开游标
open cur_test;
loop
--获取游标值
fetch cur_test
into v_emp;
exit when cur_test%notfound;--属性为是否提取数据成功,不成功则TRUE
dbms_output.put_line(v_emp.empno || '_' || v_emp.ename);
end loop;
--关闭游标
close cur_test;
end;