数据库触发器和内置程序包_第1页
数据库触发器和内置程序包_第2页
数据库触发器和内置程序包_第3页
数据库触发器和内置程序包_第4页
数据库触发器和内置程序包_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Version 3.0第九章第九章 在上一章中,我们讨论了:在上一章中,我们讨论了: 子程序子程序 程序包程序包 本章将讨论:本章将讨论: 数据库触发器数据库触发器 内置程序包内置程序包 数据库触发器数据库触发器 是是 PL/SQL 块或存储过程块或存储过程 是在对关联表执行是在对关联表执行 DML 操作时触发的操作时触发的 是隐式执行的是隐式执行的 还可能具有声明部分和异常处理部分还可能具有声明部分和异常处理部分 触发器的组成部分触发器的组成部分 触发器语句触发器语句 触发器主体触发器主体 触发器限制触发器限制 触发器语句触发器语句 指定触发器定时、事件、表名及类型指定触发器定时、事件、表名

2、及类型 触发器主体触发器主体 是是 PL/SQL 块或对过程的调用块或对过程的调用 触发器限制触发器限制 可以通过可以通过 WHEN 子句实现子句实现 触发器的类型触发器的类型 应用程序触发器应用程序触发器 数据库触发器数据库触发器 应用程序触发器应用程序触发器 在应用程序内发生特定在应用程序内发生特定 DML 事件时,将隐式事件时,将隐式触发它触发它 数据库触发器数据库触发器 在表、视图或数据库上发生特定在表、视图或数据库上发生特定 DML 事件时,事件时,将隐式触发它将隐式触发它 在表和视图上定义在表和视图上定义 在数据库或方案上,它也可以充当系统在数据库或方案上,它也可以充当系统触发器触

3、发器 DML 触发器组件触发器组件 触发器定时触发器定时 触发器事件触发器事件 表名表名 触发器类型触发器类型 WHEN 子句子句 触发器主体触发器主体 变异表变异表 当前正由当前正由 DML 语句修改语句修改 声明删除级联(引用完整性约束条件)的影声明删除级联(引用完整性约束条件)的影响响 约束表约束表 对于对于 SQL 语句,触发语句直接读取语句,触发语句直接读取 对于声明的引用完整性约束条件,间接读取对于声明的引用完整性约束条件,间接读取 表的变异或约束只是对会话而言的表的变异或约束只是对会话而言的 INSTEAD OF 触发器触发器 是在视图上而不是在表上定义的是在视图上而不是在表上定

4、义的 提供修改视图的透明方法提供修改视图的透明方法 可以针对视图编写可以针对视图编写 INSERT、UPDATE 及及 DELETE 语句语句 它以不可见方式在后台运行它以不可见方式在后台运行 执行在触发器主体中编写的操作执行在触发器主体中编写的操作 嵌套表上的嵌套表上的 INSTEAD OF 触发器触发器 不能使用不能使用 TABLE 子句直接修改视图中的嵌套列子句直接修改视图中的嵌套列 通过通过 INSTEAD OF 触发器进行修改触发器进行修改 嵌套表上的触发器因嵌套表上的触发器因 DML 操作而触发操作而触发 启用和禁用触发器启用和禁用触发器 语法如下:语法如下:alter trigg

5、er enable;alter trigger enable;alter trigger disable;alter trigger disable; 其中,其中,Trigger_nameTrigger_name 是触发器名称。是触发器名称。 删除触发器删除触发器 使用以下语法:使用以下语法:drop trigger ;drop trigger ;其中,其中,trigger_nametrigger_name 是触发器名称。是触发器名称。 查看有关触发器的信息查看有关触发器的信息 使用下列数据字典视图:使用下列数据字典视图:USER_TRIGGERSALL_TRIGGERSDBA_TRIGGER

6、S 扩展数据库的功能扩展数据库的功能 为为 PL/SQL 提供对提供对 SQL 功能的访问功能的访问 用户用户 SYS 拥有所有程序包拥有所有程序包 是公共同义词是公共同义词 可以由任何用户访问可以由任何用户访问 用户必须具有用户必须具有 EXECUTE 权限,才能访问权限,才能访问过程和函数过程和函数 其中的一些内置程序包如下:其中的一些内置程序包如下: DBMS_STANDARD 提供语言工具提供语言工具 DBMS_ALERT 支持数据库事件的异步通知支持数据库事件的异步通知 DBMS_OUTPUT 允许显示输出结果允许显示输出结果 如果禁用它,则忽略对此程序包的调用如果禁用它,则忽略对此

7、程序包的调用 DBMS_LOB 添加用于处理大型对象的实用过程和函数添加用于处理大型对象的实用过程和函数 DBMS_OUTPUT 中的一些过程中的一些过程 Enable Disable Put Put_line New_line Get_line Get_lines DBMS_LOB append compare copy erase fileclose fileexists filegetname getlength Oracle9i 中新增程序包的部分列表中新增程序包的部分列表程序包名称程序包名称 描述描述 DBMS_AQELM提供过程管理 Advanced Queuing 异步通知的配置

8、(通过电子邮件和 HTTP ) 。 DBMS_FGA提供细粒度安全函数。 DBMS_FLASHBACK可以闪回到指定时间的数据库版本。 DBMS_LDAP提供从 LDAP 服务器访问数据的函数和过程。 DBMS_LibCache通过从远程实例提取 SQL 和 PL/SQL 并在本地编译此 SQL(但不执行),在 Oracle 实例上准备库高速缓存。 DBMS_LOGMNR_CDC_PUBLISH准备捕获并发布一个或多个 Oracle 关系源表中的数据。 DBMS_LOGMNR_CDC_SUBSCRIBE查看和查询使用 DBMS_LOGMNR_CDC_PUBLISH 程序包捕获并发布的更改数据。

9、 DBMS_METADATA从字典检索完整的数据库对象定义(元数据)。 DBMS_ODCI根据用户函数的所用时间返回此函数的 CPU 成本。 数据库触发器是数据库触发器是 PL/SQL 块或存储过程块或存储过程 是在对关联表执行是在对关联表执行 DML 操作时触发的操作时触发的 数据库触发器的三个组成部分是:数据库触发器的三个组成部分是: 触发器语句触发器语句 触发器主体触发器主体 触发器限制触发器限制 触发器的类型有:应用程序触发器和数触发器的类型有:应用程序触发器和数据库触发器据库触发器 变异表是当前正由变异表是当前正由 DML 语句修改的表语句修改的表 约束表是触发语句为约束表是触发语句为 SQL 语句直接读取语句直接读取的表的表 触发触发 INSTEAD OF 触发器,而不是触发器,而不是 update、insert 或或 delete 语句语句 可以启用、禁用或删除触发器可以启用、禁用或删除触发器 Oracle 提供了许多内置程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论