oracle游标for循环100,Oracle 游标for循环

/*

游标的for循环

pl/sql语言提供了游标的for循环语句,【自动执行游标的open,fetch,close语句和循环语句的功能】,当进入循环时,

游标for循环语句自动打开游标,并提取第一行游标的数据,当程序处理完成当前所提取的数据而进入下一次循环时,

游标for循环语句自动提取下一行数据供程序处理,当提取完结果集合中的所有数据行结束循环,并自动关闭游标;

for index_variable in cursor_name[(value[,value]...)] Loop

--游标处理代码

end loop;

其中index_variable为游标for循环语句隐含声明的索引变量,该变量为记录变量,其结构与游标查询语句返回的

的结构集合相同,在程序中可以通过引用索引记录变量元素来读取所提取的游标数据,index_variable中各元素的

名称与游标查询语句选择列表中所制定的列名相同,如果在游标查询语句的选择列表中存在计算列,则必须为这些

计算列指定别名后才能通过游标for循环语句中的索引变量来访问这些列数据;

::不要在程序中对游标进行人工操作,不要在程序中定义用于控制for循环的记录::

*/

declare

cursor c_sal is select emp.empno,emp.ename,emp.sal from emp;

begin

for v_sal in c_sal loop

-- 隐含打开游标:隐含监测c_sal%notfound:隐含关闭游标

dbms_output.put_line(to_char(v_sal.empno)||'....'||v_sal.ename||to_char(v_sal.sal));

end loop;

end;

/*

::当所声明的游标带有参数时候,通过游标for循环语句为游标传递参数::

::可以将游标看做是一个方法,带参数的方法

*/

declare

cursor c_cursor(dept_no number default 10)

is

select dept.dname,dept.loc from dept where dept.deptno <= dept_no;

begin

dbms_output.put_line('当dept_no 的参数为30时:');

for c1_rec in c_cursor(30) loop

dbms_output.put_line(c1_rec.dname||':'||c1_rec.loc);

end loop;

end;

/*

pl/sql 还允许在游标for循环语句中使用子查询来实现游标的功能

*/

declare

begin

for c1_rec in (select dept.dname,dept.loc from dept) loop

dbms_output.put_line(c1_rec.dname||'...'||c1_rec.loc);

end loop;

end;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值