数据库系统及应用05(精品·公开课件).ppt

数据库系统及应用05(精品·公开课件).ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 创建者:表的拥有者 2. 触发器名 3. 表名:触发器的目标表 4. 触发事件:INSERT、DELETE、UPDATE 对于UPDATE事件,可以用以下形式表示对某些列的修改会引起触发器的动作: UPDATE OF 列名1,列名2... 5. 触发器类型 行级触发器(FOR EACH ROW) 语句级触发器(FOR EACH STATEMENT) 3. 执行存储过程 执行(或调用)存储过程的人是过程的创建者或是拥有EXECUTE ANY PROCEDURE系统权限的人或是被拥有者授予EXECUTE权限的人。 方法1: EXECUTE 模式名.存储过程名[(参数1,…)]; 方法2: BEGIN 模式名.存储过程名[(参数1,…)]; END; 参数的值由调用者传递,传递的参数的个数、类型和顺序应该和定义的一致。如果顺序不一致,可以采用以下调用方法: 参数名=参数值表达式 参数可以是变量、常量或表达式; 如果是调用本账户下的存储过程,则模式名可以省略。要调用其他账户编写的存储过程,则模式名必须要添加。 说明: 例5.3 用户注册检查,其数据库表结构如下所示,编写存储过程进行用户登录检查,并记录检查结果(同例2)。 (1) 输入参数1为用户名; (2) 输入参数2为密码; (3) 输出参数为:用户名和密码正确,返回值为0;密码错误返回值为-1;用户名错误返回值为-2。 4. 示例程序 … … msg … passwd Userid tout: userlog: 5.3 Oracle包 包是用来存储相关程序结构的对象,它存储于数据字典中。 包由两个分离的部分组成: 包头(PACKAGE):包的说明部分,是对外的操作接口,对应用是可见的; 包体(PACKAGE BODY):包的代码和实现部分,对应用来说是不可见的黑盒。 包的介绍略 5.4 触发器 触发器类似于过程和函数,它们都是拥有声明、执行和异常处理过程的带名PL/SQL块,触发器必须在数据库中以独立对象的身份存储。 执行触发器的操作就是“启动”触发器。触发器必须由事件才能触发。触发事件发生时就会隐式地执行该触发器,并且触发器不接受参数。 触发器又叫做事件—条件—动作规则。触发器是当特定的系统事件(如对一个表的增、删、改,事务的结束)发生时,对规则的条件进行检查,如果条件成立则执行规则中的动作,否则不执行该动作。触发事件的操作可能执行也可能不执行。 不接受参数 可以传递参数 参数传递 通过事件触发而被执行 通过存储过程名字而被直接调用 调用执行 触发器 存储过程 存储过程与触发器的比较 触发器的作用主要有以下几点: 维护不可能在表创建时刻通过声明性约束进行的复杂的完整性约束限制; 完整性限制是当被限制的对象发生变化时,系统就去检查该对象变化后能否满足限制条件,如果不能满足,就拒绝引起这种变化的操作。 提供透明的审计记录,通过记录所进行的修改以及谁进行了修改来审计表中的信息; 利用触发器还可以做很多其他工作,例如: 自动产生导出列的值; 实施复杂的安全授权; 执行复杂的业务规则; 可阻止非法的事务处理; 表被修改的时候,自动给其他需要执行操作的程序发信号。 5.4.1 触发器的种类和触发事件 触发器事件可分为3类: DML事件 DDL事件 数据库事件 触发器类型可分为4类: DML触发器 DDL触发器 替代触发器 数据库事件触发器 本课程只介绍DML触发器 发生服务器错误时触发 SERVERERROR 当一个会话从数据库中断开时触发 LOGOFF 当用户连接到数据库并建立会话时触发 LOGON 在使用NORMAL或IMMEDIATE选项关闭 数据库时触发 SHUTDOWN 数据打开时触发 STARTUP 数据库事件(5种) 删除对象时触发 DROP 修改数据库或数据库对象时触发 ALTER 在创建新对象时触发 CREATE DDL事件(3种) 在删除表或视图中的数据时触发 DELETE 修改表或视图中的数据时触发 UPDATE 在表或视图中插入数据时触发 INSERT DML事件(3种) 含 义 关 键 字 种 类 触发器事件 定义在整个数据库或模式上,触发 事件是数据库事件 — 数据库事件触发器 定义在模式上,触发事件是数据库 对象的创建和修改 DDL触发器 数据定义语言触发器 创建在视图上,用来替换对视图进行的插入、删除和修改操作 INSTEAD OF触发器 替代触发器 创建在表上,由DML事件引发的 触发器 DML触发器 数据操纵语言触发器 作 用 简 称 种 类 触

您可能关注的文档

文档评论(0)

花好月圆 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档