首页 > 代码库 > 游标cursor:(循环操作批量数据)
游标cursor:(循环操作批量数据)
declare
cursor stus_cur is select * from students; --定义游标并且赋值(is 不能和cursor分开使用)
cur_stu students%rowtype; --定义rowtype
begin
open stus_cur; --开启游标
loop --loop循环
exit when stus_cur%notfound; --循环条件
fetch stus_cur into cur_stu; --游标值赋值到rowtype
dbms_output.put_line(cur_stu.name); --输出
end loop ; --结束循环
close stus_cur; --关闭游标
end;
plsql是面向过程的语言,这类语言还有c,cobol等,这类语言的共同点是一次只能处理一条数据,而数据库sql返回的对象是一个集合,这样直接用plsql程序操作就会出现问题。在这种环境下就出现了游标,游标实际是一个内存地址,指向的是sql查询出的结果集,当需要的时候再根据游标一条一条取数据【fetch】,直到全部数据取完。
CURSOR minInter1 IS
SELECT t1.rm_interface,
t1.rm_merchno,
min(GetExp(t1.rr_id, TradeAmount, ‘‘ , ‘‘ , ‘0‘ )) minExp
FROM t_r_merchant t1
WHERE t1.rm_interface = InterId1
OR t1.rm_interface = InterId2
GROUP BY t1.rm_interface, t1.rm_merchno;
OPEN minInter1;
LOOP
EXIT WHEN minInter1%NOTFOUND ;
FETCH minInter1 INTO nResult, tmpMchNo, minexp;
iCount := minInter1% rowcount;
END LOOP;
CLOSE minInter1;
游标cursor:(循环操作批量数据)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。