- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
九游标
游标
概述
游标(Cursor)是Oracle系统在内存中开辟的一块工作区,在该工作区中存放查询语句返回的结果集。
结果集可以包含零条数据记录、一条数据记录,也可以是多条数据记录。在定义游标所在的工作区中,存在一个指针,在初始状态下,游标指针指向查询结果集的第一条数据记录的位置。当执行FETCH语句提取数据记录后,游标指针将向下移动一个数据记录的位置
游标的作用
从结果集的当前位置检索一行数据记录;
支持对结果集的当前数据记录进行数据更新
使用游标注意事项
①在创建游标时,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该避免使用游标;
②如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作
游标分类
Oracle中的游标分为显示游标,隐式游标,REF游标。
当查询返回的结果集超过一条数据记录时,就需要一个显式游标,此时用户不能使用SELECT INTO语句。显式游标在PL/SQL块的声明部分声明,在执行部分或异常处理部分打开、提取和关闭
PL/SQL管理隐式游标,当执行DML操作时隐式游标打开,结束时隐式游标自动关闭。
REF 游标用于处理运行时才能确定的动态 SQL 查询的结果
游标使用过程和属性
建立游标的过程
1.声明游标
声明游标,就是使一个游标与一条查询语句建立联系。
DECLARE
CURSOR 游标名[(参数1 数据类型[,…n])] IS 查询语句
[FOR UPDATE [OF [用户方案.]表名.列名 [,…n]]];
2.打开游标
就是执行游标定义时所对应的查询语句,并把查询返回的结果集存储在游标对应的工作区中。
OPEN 游标名[(参数1 [,…n])];
3.提取游标数据
就是从定义游标的工作区中检索一条数据记录作为当前数据记录。
FETCH 游标名 INTO 变量1 [,… n]
4.关闭游标
CLOSE 游标名; 游标的重要属性
%FOUND – SQL 语句影响了一行或多行时为 TRUE
%NOTFOUND – SQL 语句没有影响任何行时为TRUE
%ROWCOUNT – SQL 语句影响的行数
%ISOPEN - 游标是否打开,始终为FALSE 游标详解
隐式游标
在PL/SQL中使用DML语句时自动创建隐式游标,隐式游标自动声明、打开和关闭,其名为 SQL。通过检查隐式游标的属性可以获得最近执行的DML 语句的信息
--%found
--查询emp表中有没有编号为7788的记录
declare
emp_row emp%rowtype;
begin
select * into emp_row from emp where empno=7788;
if(sql%found) then --注意:sql是隐身游标默认游标名
dbms_output.put_line(找到数据);
else
dbms_output.put_line(没有找到数据);
end if;
end;
--%notfound
declare
emp_row emp%rowtype;
begin
select * into emp_row from emp where empno=7788;
if(sql%notfound) then
dbms_output.put_line(没有找到数据);
else
dbms_output.put_line(找到数据);
end if;
end;
--%rowcount
--%isopen
--将部门编号为30的员工都加薪100
begin
update emp set sal=sal+100 where deptno=30;
dbms_output.put_line(受影响的行数:||sql%rowcount);
if(sql%isopen) then
dbms_output.put_line(游标已经打开);
else
dbms_output.put_line(游标没有打开);--隐式游标都是关闭的
end if;
end; 显示游标
虽然在DML操作中,PL/SQL块中会创建隐式游标,但是如果在进行查询操作并赋值给标量类型的变量时,如果返回行超过1行,此时就需要应用显示游标
显示游标需要先定义游标,再经历打开,提取,关闭整个过程。
显示游标查询案例:
--显示游标
--迭代游标 loop
--查询出部门编号为30的员工信息
Declare
--声明游标时与查询语句关联
cursor emp_cursor is select * from emp where deptno=30;
emp_row emp%rowty
您可能关注的文档
- 东风益方年经营计划.ppt
- 中调调〔〕230号附件(继电保护操作调度术语).doc
- 丽湖雅致酒店能减排措施.doc
- 九光谱分析法概论.ppt
- 九一讲库仑定律电场强度.pptx
- 九功率放大电路.ppt
- 九年级化学八单元单元清.ppt
- 九压电.ppt
- 九年级化学八单元复习课件.ppt
- 九温度测量.ppt
- 债券市场发行规模创新高 创新产品助力国家战略——2024年中国债券市场发行分析与2025年展望 -新世纪.docx
- 【NIFD季报】2024年度全球金融市场 -供给紧约束下的美国经济新平衡.docx
- 【飞瓜月报】2025年01月短视频及直播电商营销月报.docx
- 变电站验收要点.docx
- 从0到1学会使用Deepseek.docx
- 厦大团队:大模型概念、技术与应用实践.docx
- 光伏出海数字营销速成手册_final.docx
- 大中华区租户研究 -中国企业加快“走出去”步伐:走上世界经济舞台 2018.docx
- 2025年脑机接口蓝皮书:未来将至,打造人机交互新范式.docx
- 中国国际经济贸易仲裁委员会域名争议解决2024年度回顾.docx
最近下载
- 居住区规划设计.ppt
- 《汤姆 · 索亚历险记》阅读测试题及答案 .docx VIP
- 小升初阅读技巧剖析——+文言文阅读(课件)-部编版语文六年级下册.pptx VIP
- HG_T 3731-2023 非金属化工设备 玻璃纤维增强聚氯乙烯复合管和管件.docx VIP
- 小学科学六年级下册全册 .pdf VIP
- 《世说新语系列》课件.pptx VIP
- 工程项目居间合同协议.docx VIP
- Unit 2 No Rules, No Order复习课件P2-人教版七下英语2024.pptx VIP
- EPSON,爱普生EPSON SC POS Application Programming Guide说明书用户手册.pdf
- 2024-2025学年北京海淀区四年级(上)期末英语试卷.pdf
文档评论(0)