第7章-子程序和触的发器.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章-子程序和触的发器

* 讲解:程序包的开发步骤 程序包的开发需要以下几个步骤: 由于程序包较大,所以一定将每个子程序调试通过后再写程序包 注意 演示示例: 开发程序包 讲解:程序包中的游标 静态游标如何在包中使用? 游标的定义分为游标规范和游标主体两部分 在包规范中声明游标规范时必须使用 RETURN 子句指定游标的返回类型 RETURN子句指定的数据类型可以是: 用 %ROWTYPE 属性引用表定义的记录类型 程序员定义的记录类型 动态游标如何在包中使用? 不可在包中声明游标变量 问题 演示示例: 程序包中的静态游标 注意 演示示例: 程序包中的动态游标 小结 判断对错 程序包是对相关类型、变量、常量、游标、异常、存储过程和函数的封装 程序包由包规范和包主体两部分组成 包规范是包的接口,包含公用对象及其类型 提问 讲解:为什么要使用触发器 如何实现跟踪并记录所有对雇员表的表结构进行改变的操作? 只要一变动表结构就要记录所有操作到一个审计表中 不需要显式调用来执行,而是修改表结构的操作来启动运行 使用触发器可以实现 问题 分析 结论 讲解:触发器特性 使用触发器能够满足哪些需求? 不需要显式调用来执行,而是由一个事件来启动运行 可以通过其他Oracle 事件触发调用的程序,因为触发器不能接收参数 Oracle 事件包括哪几种情况? INSERT、UPDATE 及DELETE 操作或对视图进行类似的操作 执行DDL操作 数据库的启动与关闭 问题 讲解:触发器语法 CREATE [OR REPLACE] TRIGGER trigger_name AFTER | BEFORE | INSTEAD OF [INSERT] [[OR] UPDATE [OF column_list]] [[OR] DELETE] ON table_or_view_name [REFERENCING {OLD [AS] old / NEW [AS] new}] [FOR EACH ROW] [WHEN (condition)] pl/sql_block; 语法 演示示例: 创建触发器 讲解:触发器的组成部分 触发器由三部分组成: 触发器语句(事件) 定义激活触发器的 DML 事件和 DDL 事件 触发器限制 执行触发器的条件,该条件必须为真才能激活触发器 触发器操作(主体) 包含一些 SQL 语句和代码,它们在发出了触发器语句且触发限制的值为真时运行 BEFORE DELETE ON emp FOR EACH ROW …… WHEN (old.deptno 10) BEGIN --将修改前数据插入到日志记录表del_emp,以供监督使用。 INSERT INTO del_emp(deptno, empno, ……) VALUES( :old.deptno, :old.empno, ……); END; 讲解:触发器类型 触发器的类型有: 触发器类型 模式(DDL) 触发器 DML 触发器 数据库级 触发器 语句级触发器 行级触发器 INSTEAD OF触发器 讲解:触发器类型 DDL 触发器 数据库级触发器 DML 触发器 语句级触发器 行级触发器 INSTEAD OF 触发器 在模式中执行 DDL 语句时执行 在发生打开、关闭、登录和退出数据库等系统事件时执行 在对表或视图执行DML语句时执行 无论受影响的行数是多少,都只执行一次 对DML语句修改的每个行执行一次 用于用户不能直接使用 DML 语句修改的视图 演示示例: 行级、语句级触发器、INSTEAD OF触发器 如何启用和禁用触发器? 如何删除触发器? 是否选择使用触发器? 能用其他方法替代就不要用触发器 讲解:触发器的管理 SQL ALTER TRIGGER aiu_itemfile DISABLE; SQL ALTER TRIGGER aiu_itemfile ENABLE; SQL DROP TRIGGER aiu_itemfile; 问题 上机练习 需求说明 实现跟踪并记录所有对USER1用户下的雇员表的表结构进行改变的操作 分析 使用DDL触发器 完成时间:10分钟 共性问题集中讲解 练习 答疑时间 同学们请就以下方面的问题请教老师 存储过程的跟踪和调试 存储过程和事务的用法 程序包的管理 模式触发器 数据库级触发器 (教员备课时自行填写) 总结 子程序的特点是什么? 有了存储过程和函数,为什么还要有程序包? 为什么使用触发器? 触发器的分类有哪些? INSTEAD OF 触发器特点? 提问 作业 必做 教员备课时在此添加内容 选做 教员备课时在此添加内容 提交时间:xxx 提交形式:xxx 阅读学生用书,观看平台《数据库设

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档