
oracle中的游标
范例一:(无参数)
用游标方式输出emp1表的name、job、hdate、sal
用游标方式输出指定部门下所有员工的dept_id、name、job、hdate、sal
发布日期:2021-05-08 13:40:48
浏览次数:28
分类:精选文章
本文共 1725 字,大约阅读时间需要 5 分钟。
游标(光标Cursor)
在java程序中有集合的概念,那么在pl/sql中也会用到多条记录,这时就要用到游标,游标可以存储查询返回的多条数据。
语法:
cursor 游标名 [(参数名 数据类型, 参数名 数据类型,····)] is select语句;例如: cursor emps is select * from emp;



declare cursor emps is select * from emp1; rs emp%rowtype;begin --1.开启游标 open emps; --2.从游标中提取数据 loop fetch emps into rs; exit when emps%notfound; dbms_output.put_line('name--'||rs.name||' job--'||rs.job||' birthday--'||to_char(rs.hdate,'fmyyyy-mm-dd')||' salary--'||rs.sal); end loop; --3.关闭游标 close emps;end;

declare cursor emps(emp_id emp1.id%type) is select * from emp1 where dept_id=emp_id; rs emp%rowtype;begin open emps(10); loop fetch emps into rs; exit when emps%notfound; dbms_output.put_line('dept_id--'||rs.dept_id||' name--'||rs.name||' job--'||rs.job||' birthday--'||to_char(rs.hdate,'fmyyyy-mm-dd')||' salary--'||rs.sal); end loop; close emps;end;
declare cursor pc(dno emp1.dept_id%type) is select id from emp1 where dept_id=dno; pno emp1.id%type;begin open pc(10); loop fetch pc into pno; exit when pc%notfound; update emp1 t set t.sal=t.sal+1000 where t.id=pno; end loop; close pc;end;
系统引用游标
declare emps sys_refcursor; rs emp1%rowtype;begin open emps for select * from emp1; loop fetch emps into rs; exit when emps%notfound; dbms_output.put_line(rs.name||' earns '||rs.sal||'$ every month'); end loop; close emps;end;
使用for循环打开游标
使用for循环来遍历游标,会自动申明一个记录型的变量、自动打开游标、自动赋值、自动关闭游标。


declare cursor emps is select * from emp1;begin for rs in emps loop dbms_output.put_line(rs.name||'---'||rs.sal); end loop;end;
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月29日 13时32分29秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java ThreadPoolExecutor初探
2021-05-09
快速指数算法
2021-05-09
python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)
2021-05-09
SpringCloud微服务(03):Hystrix组件,实现服务熔断
2021-05-09
Spring 框架基础(01):核心组件总结,基础环境搭建
2021-05-09
Cassandra数据建模
2021-05-09
Internet Explorer 10 专题上线
2021-05-09
云计算之路-阿里云上:0:25~0:40网络存储故障造成网站不能正常访问
2021-05-09
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
2021-05-09
上周热点回顾(6.3-6.9)
2021-05-09
上周热点回顾(8.12-8.18)
2021-05-09
【故障公告】升级阿里云 RDS SQL Server 实例故障经过
2021-05-09
蹒跚来迟:新版博客后台上线公测
2021-05-09
[网站公告]11月26日00:00-04:00阿里云RDS升级
2021-05-09
[网站公告]又拍云API故障造成图片无法上传(已恢复)
2021-05-09
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了
2021-05-09
上周热点回顾(6.9-6.15)
2021-05-09
上周热点回顾(10.20-10.26)
2021-05-09
上周热点回顾(2.16-2.22)
2021-05-09
上周热点回顾(3.2-3.8)
2021-05-09