- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Oracle 数据库应用 》理论课
第6 章 游标管理
本章技能目标
掌握游标管理技巧
1. 游标简介
游标是构建在 PL/SQL 中,用来查询数据,获取记录集合的指针。它可以让开发者一次访问结
果集中的一行。游标可以以编程的方式访问数据。从而完成需要分别在结果集中每个记录上执
行的过程代码的任务。
在Oracle 中提供了两种游标类型。他们是:静态游标,REF 游标。
静态游标:静态游标是在编译时知道其SELECT 语句的游标。静态游标有分为两种类型:隐式
游标和显示游标。
REF 游标:很多时候用户需要为游标使用的查询直到运行的时候才能确定,可以使用REF 游标
(引用游标)和游标变量满足这个要求。为了使用引用游标,必须声明游标变量。有两种类型
的REF 游标,强类型REF 游标和弱类型REF 游标。
2. 隐式游标
PL/SQL 为所有SQL 数据操纵语句(包括返回一行的SELECT )隐式声明游标,称为隐式游标
的原因是用户不能直接命名和控制此类游标。当用户在PL/SQL 中使用数据操纵语言(DML )
时 ,Oracle 预先定义一个名为 SQL 的隐式游标,通过检查隐式游标的属性可以获得最近执行
的DML 语句的信息。
隐式游标的属性有:
%FOUND – SQL 语句影响了一行或多行时为 TRUE
%NOTFOUND – SQL 语句没有影响任何行时为TRUE
%ROWCOUNT – SQL 语句影响的行数
%ISOPEN - 游标是否打开,始终为FALSE
当执行一条DML 语句后,DML 语句的结果保存在四个游标属性中,这些属性用于控制程序流
程或者了解程序的状态。当运行DML 语句时,PL/SQL 打开一个内建游标并处理结果,游标是
维护查询结果的内存中的一个区域,游标在运行DML 语句时打开,完成后关闭。
第6 章 游标管理
隐式游标只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT
三个属性.SQL%FOUND,SQL%NOTFOUND 是布尔值,SQL%ROWCOUNT 是整数值
1. %FOUND
只有DML 语句影响了一行或多行时%FOUND 属性才返回 TRUE
例1 演示使用%FOUND 游标属性的用法。
例1:
SQL SET SERVEROUTPUT ON
SQL BEGIN
UPDATE toys SET toyprice=270
WHERE toyid= P005;
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘表已更新);
ELSE
DBMS_OUTPUT.PUT_LINE(‘编号未找到);
END IF;
END;
/
例 1 使用了%FOUND 属性,如果WHERE 子句中给出的条件得到满足,将更新toys 表并输出
“表已更新”,否则输出“编号未找到”。
在执行任何DML语句前SQL%FOUND和SQL%NOTFOUND的值都是NULL,在执行DML语句
后,SQL%FOUND的属性值将是:
. TRUE :INSERT
. TRUE :DELETE和UPDATE,至少有一行被DELETE或UPDATE.
. TRUE :SELECT INTO至少返回一行
当SQL%FOUND 为TRUE 时,SQL%NOTFOUND 为FALSE。
2. %NOTFOUND
%NOTFOUND 属性与%FOUND 属性的作用正好相反。如果 DML 语句没有影响到任何行,
则%ROWCOUNT 属性返回0 。
例1-1 演示使用%NOTFOUND 游标属性的用法。
例1-1:
SQL SET SERVEROUTPUT ON
SQL DECLARE
v_TOYID TOYS.ID%type := TOYID;
v_TOYNAME TOYS.NAME%Ty
您可能关注的文档
最近下载
- 2025年舞蹈教师资格证考试模拟试卷:舞蹈教学法与课程设计案例分析.docx VIP
- 学校食品安全事故应急演练实施方案(含演练脚本).docx
- 湖南省师德师风教育读本.pptx VIP
- 2025秋教科版(2024)科学三年级上册第一单元天气《2.docx VIP
- ISO∕IEC 20000-1:2018《信息技术服务管理第一部分:服务管理体系要求》之17-“8.1运行的策划与控制”理解与应用指导材料.docx VIP
- 验收标准内装 .pdf VIP
- 像医生一样思考(完全版).pptx VIP
- 北大附中学生家长写给高二同学的一封信导论.doc VIP
- 2025年白酒酿造工试题题库.pdf VIP
- 关于进一步加强公司在职员工学历提升的通知(专业完整模板).docx VIP
文档评论(0)