- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
什么是游标 游标是指向查询结果集的一个指针,它是一个通过定义语句与一条Select语句相关联的一组Sql语句。游标包含两方面的内容: 游标结果集:执行其中的Select语句所得到的结果集 游标位置:一个指向游标结果集内的某一条记录的指针 游标的作用: 利用游标可以单独操纵结果集中的每一行。游标在定义以后存在两种状态:关闭和打开。 当游标关闭时,其查询结果集不存在; 当游标打开时,能按行读取或修改结果集中的数据。 创建游标(一) 游标能帮助DBA对查询的结果逐行进行处理。 使用游标分为以下几步: 1、定义游标 2、打开游标 3、从游标中操作数据 4、关闭游标 示例如下: 取出记录 当游标打开后,就可以从结果集中提取数据了。 提取游标数据有三种方式: 1、提取单行数据:Fetch 游标名 Into 存放结果的 记录类型 |变量 2、提取全部数据:Fetch 游标名 Bulk Collect Into 集合类型 3、提取指定行数的记录:Fetch 游标名称 Bulk Collect Into 集合类型 Limit 提取的数量 游标实例(一) 开发一个游标,要求如下: 1、创建一个查询scott.emp表所有数据的游标 2、每次取出5条记录 3、如果记录ID能被2整除,则打印该记录的信息。 4、打印格式如下: XX 雇员的工资是:YY,对应的编号是:ZZ 游标实例(二) 游标属性 游标提供了一些属性帮助编写pl/sql程序,属性的例用方法: 游标名称%属性名 游标的属性有: 1、%ISOPEN:确定游标是否已经打开 2、%FOUND:检查是否从结果集中提取到了记录,如果提取到数据返回true;否则返回false。 3、%NOTFOUND:检查是否没有从结果集中提取到记录,如果没有取到数据返回true;否则返回false。 4、%ROWCOUNT:返回到当前行为止,已经提取了多少数据。 更新或删除游标 普通游标只能完成查询的操作,称为:查询游标。有时需要修改/删除记录,这时就要使用更新/删除游标。 更新 / 删除游标与查询游标的区别: 1、Select 查询语句后添加 For Update 2、在删除/更新语句后添加 where Current Of 游标名 示例如下: 小结 什么是游标?如何声明游标? 创建一个基于scott.emp表的游标,实现对工资小于3000的雇员信息进行打印,并且统计工资大于等于3000的雇员数量。 什么是触发器 触发器:指存储在数据库中,当对表执行insert、update、delete时,被隐式执行的存储过程。 触发器的作用: 1、安全性。可以基于数据库的值,使用户具有操作数据库的某种权利。 2、审计。可以跟踪用户对数据库的操作。 3、实现复杂的非标准的数据库相关完整性规则。触发器可以对数据库中相关的表进行连环更新。 4、自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。 触发器 在创建触发器时,需要指定: 1、触发时机:指定触发时机。取值:Before、After以及Instead Of。 2、触发事件:指定导致触发器执行的DML操作。即:insert、update、delete。可以使用单个触发事件,也可以组合多个触发事件。 3、表名:指定DML操作对应的表。 4、触发类型:指定触发事件发生后,需要执行几次触发操作。 5、触发操作:指定触发器执行的代码。 条件谓语 当在触发器中同时包括多个触发事件时,为了在触发器代码中进行区分,可以使用以下谓语: 1、INSERTING:当触发事件是Insert操作时,该条件谓语返回true,否则返回false。 2、UPDATING:当触发事件是update操作时,该条件谓语返回true,否则返回false。 3、DELETING:当触发事件是delete操作时,该条件谓语返回true,否则返回false。 创建触发器(一) 一个完整的触发器由五部分组成,所以创建触发器也必须按照如下格式: 语法格式: 创建触发器(二) 创建表级触发器,示例如下: 注意:例外的自定义编码从-20000 到 -20999 创建触发器(三) 创建行级触发器。 示例如下: 管理触发器 触发器创建后,需要对它进行管理: 1、显示指定表上的用户触发器:select trigger_name,status from user_trigges where table_name = upper(‘表名’); 2、禁用触发器:alter trigger 触发器名称 disable; 3、启用触发器:alter trigger 触发器名称 enable; 4、禁用或激活表的所有触发器:alter table 表名 disabl
文档评论(0)