数据库资料OraPlsqlTps.ppt
《数据库资料OraPlsqlTps.ppt》由会员分享,可在线阅读,更多相关《数据库资料OraPlsqlTps.ppt(48页珍藏版)》请在三一办公上搜索。
1、wnt 2000(C)copyright,1,应用于Web的面向对象关系型数据库管理系统:Oracle,使用数据包和数据库触发器,4,2,本章目标,数据包 数据包的优点 数据包说明 数据包主体 使用游标变量 数据库触发器简介,3,本章目标(续),创建数据库触发器 INSTEAD OF 触发器 触发器的限制 启用/禁用触发器 放置触发器 编译和调试触发器,4,数据包,将逻辑相关的 PL/SQL 类型、对象和子程序进行分组的数据库对象 不能对它们进行调用,也不能对其传送参数或嵌套 这里有两个部分 说明主体,5,数据包的优点,模块化特性允许您将相关的类型、对象和子程序封装入一个命名的 PL/SQL
2、模块具有简单、清晰、定义明确的接口,便于理解 可以协助应用程序开发,6,数据包的优点(续),更简捷的应用程序设计 在设计应用程序时,只需要最初在数据包中提供接口信息 可以没有主体而对说明进行编码和编译 也可以编译引用数据包的子程序 在就绪可以完成应用程序之前不必定义数据包主体,7,数据包的优点(续),信息隐藏 可以指定哪些类型、项目和子程序是公有的还是私有的 私有子程序的定义是隐含的,这样如果定义更改只会影响数据包(而不会影响应用程序)简化了维护和增强,并保护了数据包的完整性,8,数据包的优点(续),增加了功能性数据包的公共变量和游标在会话期间持续存在 它们可以被环境中所执行的所有子程序共享它
3、们也允许您在事务间维护数据,不用将数据存储在数据库中,9,数据包的优点(续),更佳的性能 首次调用数据包的子程序时,整个数据包将装载进内存 以后对数据包中相关子程序的调用就不用进行磁盘输入/输出操作了如果程序包的函数发生更改,Oracle 不用重新编译调用子程序,因为它们不依赖数据包主体,10,数据包说明,是一个与应用程序的接口 声明可用的类型、变量、常数、例外、游标和子程序 让公用声明对应用程序可见 可以被认为是可操作的接口,11,数据包说明(续),声明的范围对于数据库构架而言是局部的,对数据包而言是全局的 列出可以用于应用程序的数据包资源,12,数据包说明(续),是使用 CREATE PA
4、CKAGE 命令创建的 CREATE OR REPLACE PACKAGE AS-公共类型和对象声明-子程序说明 END;,13,数据包说明(续),示例 CREATE PACKAGE airlines ASTYPE flight_day_type is RECORD(flightno flight_sch.flightno%TYPE,flight_day1 NUMBER(1);CURSOR flight_cur RETURN flight_day_type;disp_day CHAR(15);FUNCTION day_fn(mday NUMBER)RETURN CHAR;PROCEDURE b
5、ranch_sum(p_brnch branch.branch_code%TYPE);END airlines;,14,数据包主体,实现数据包说明 完全定义游标和子程序 将实现细节和私有声明从应用程序隐含 可以将其设想为“黑箱”可被替换增强或在不更改接口的情况下被替换 可以在不重新编译调用程序的情况下对其进行更改,15,数据包主体(续),声明范围对于数据包主体是局部的 除了在数据包主体内将不能访问到声明的类型和对象 只在首次引用数据包时,运行一次数据包的初始化部分,16,数据包主体(续),使用 CREATE PACKAGE BODY 命令生成 CREATE OR REPLACE PACKAGE
6、 BODY AS-私有类型和对象声明-子程序主体 BEGIN-初始化语句 END;,17,数据包主体(续),CREATE PACKAGE BODY airlines ASCURSOR flight_cur RETURN flight_day_type ISSELECT flightno,reoute_code,flight_day1,flight_day2FROM flight_sch;FUNCTION day_fn(mday NUMBER)RETURN CHAR ISBEGIN语句;END day_fn;.END airlines;,18,引用数据包对象,必须使用点符号引用数据包对象和子程序
7、 数据包名.类型名 数据包名.对象名数据包名.子程序名示例airlines.day_fn(4);,19,维护数据包,可以使用 DROP 命令删除数据包 DROP PACKAGE 示例DROP PACKAGE airlines;要删除一个结构,应将其从数据包中删除,然后重新编译数据包,20,使用游标变量,与游标类似,游标变量指向多行查询结果集的当前行 与游标不同,可以为任意类型兼容的查询打开游标变量 可以为游标变量赋新值,可以将它传送给子程序 它为集中数据检索提供了灵活和方便的方式,21,使用游标变量(续),通常通过将它传送到存储的过程来打开,该过程声明一个游标变量作为它的正式变量之一 当将其作
8、为打开它的子程序的一个正式参数进行声明时,必须指定 IN OUT 模式,从而子程序可以将打开的游标传送回调用者 使用相同的或不同的 REFCURSOR 绑定变量可以让过程执行多次,22,使用游标变量(续),CREATE PACKAGE dept_data ASTYPE dcur_typ IS REF CURSOR RETURN dept%ROWTYPE;PROCEDURE dept_cv(d_cv IN OUT dcur_typ);END dept_data;CREATE PACKAGE BODY dept_data ASPROCEDURE dept_cv(d_cv IN OUT dcur_t
9、yp)ISBEGINOPEN d_cv FOR SELECT*FROM dept;END dept_cv;END dept_data;,23,使用游标变量(续),要在 SQL 提示符处查看游标变量的值 声明一个类型为 REFCURSOR 的变量 SQL VARIABLE v_dept REFCURSOR执行指定的过程SQL EXECUTE dept_data.dept_cv(:v_dept);打印绑定变量以查看结果SQL PRINT v_dept,24,使用游标变量(续),要集中检索数据,可以在存储过程中组合类型兼容的查询 CREATE PACKAGE emp_data ASTYPE ecur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 资料 OraPlsqlTps
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6578707.html