- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * - * - 通过使用集合变量作为输入参数,可以将调用环境或者应用程序的集合变量数据(或者数组数据)传递到包的公用过程中。 通过使用集合类型作为返回类型,可以将多行数据返回到调用环境或者应用程序中。 使用集合类型 - * - 重载(overload) 根据不同的参数格式调用不同功能的同名子程序 子程序重载的唯一参考前提是参数格式,返回类型不同不能决定重载 构造过程: 包的构造过程没有任何名称,它是在实现了包的其他过程和函数之后,以BEGIN开始、以END结束的部分 当在会话内第一次调用包的公用组件时,会自动执行其构造过程,并且在同一会话内构造过程只会被执行一次 重载/构造过程 - * - 删除包: 重新编译包:使用ALTER PACKAGE命令可以重新编译处于INVALID状态的包 确定包状态:为了确定处于INVALID状态的包,可以查询数据字典USER_OBJECTS 查看包文本:通过查询数据字典USER_SOURCE,可以取得当前用户所拥有的包名称及其创建文本 维护包 DROP PACKAGE dept_pack; - * - 定义:触发器存放在数据库内,触发器内的代码,称为“触发体”(trigger body),由PL/SQL块构成。 分类: 语句触发器:在执行DML(INSERT、DELETE、UPDATE)操作时,将激活该类触发器。 行触发器:在执行DML操作时,每作用一行被触发一次。 INSTEAD OF触发器:该触发器是仅基于在视图上进行DML操作所创建的触发器。 事件触发器:该类触发器基于Oracle系统事件或客户事件建立并触发。 触发器(TRIGGER) - * - BEFORE触发器:在数据操作前被触发 触发器条件谓词 : INSERTING:如果触发语句是INSERT语句,则为TRUE,否则为FALSE。 UPDATING:如果触发语句是UPDATE语句,则为TRUE,否则为FALSE。 DELETING:如果触发语句是DELETE语句,则为TRUE,否则为FALSE。 语句触发器 - * - BEFORE行触发器:在对每行数据操作前被触发 AFTER行触发器:为了记录数据变化,可以使用AFTER行触发器 UPDATE OF限制:即只有属于OF指定的列对应表的列数据发生修改时,才会激活触发器 WHEN限制:可以使用WHEN子句对触发条件加以限制,只有满足condition指定的条件的行才会被触发 行触发器 - * - 触发器的使能: 重编译触发器: 删除触发器: 显示触发器信息:通过数据字典视图USER_TRIGGERS,可以显示当前用户所包含的触发器信息 维护触发器 ALTER TIGGER trigger_name [DISABLE | ENABLE ]; ALTER TRIGGER trigger_name COMPILE; DROP TRIGGER trigger_name; - * - CREATE TRIGGER语句文本的字符长度不能超过32KB。 触发体内的SELECT语句只能为SELECT INTO语句,或者为定义游标所使用的SELECT语句。 触发器中不能使用数据库事务控制语句。 由触发器所调用的过程或函数也不能使用数据库事务控制语句。 触发器中不能使用LONG、LONG RAW类型。 触发器内可以参照LOB类型列的列值,但不能通过:NEW修改LOB列中的数据。 触发器使用限制 - * - 建立触发器 验证结果 触发器实例 create or replace procedure p1 (v_id in emp.empno%type) is create or replace trigger d_update after delete or update of deptno on dept for each row begin --当dept 表的部门号修改的时候 emp 表的对应部门号也相应的修改 if (updating and :old.deptno != :new.deptno) then update emp set deptno = :new.deptno where deptno = :old.deptno; end if; end; update dept set deptno=50 where deptno=30; select * from emp; select * from dept; - * - PL/SQL包含隐含游标和显示游标两种类型 可以使用控制语句和游标属性控制游标的访问 可以使用
您可能关注的文档
- (HTML5程序设计及实践)第1章HTML5简介.ppt
- (HTML5程序设计及实践)第2章HTML5布局.ppt
- (HTML5程序设计及实践)第3章HTML5表单.ppt
- (HTML5程序设计及实践)第4章HTML5画布.ppt
- (HTML5程序设计及实践)第5章HTML5拖放.ppt
- (HTML5程序设计及实践)第6章HTML5音频和视频.ppt
- (HTML5程序设计及实践)第7章HTML5Web存储.ppt
- (HTML5程序设计及实践)第8章HTML5应用程序缓存.ppt
- (HTML5程序设计及实践)第9章HTML5多线程.ppt
- (HTML5程序设计及实践)第10章HTML5手机应用开发.ppt
- (Oracle数据库应用开发及实践)08_第8章事务管理与并发控制.ppt
- (Oracle数据库应用开发及实践)09_第9章用户管理与安全.ppt
- (Oracle数据库应用开发及实践)10_第10章Oracle数据备份与恢复.ppt
- (Visual C++程序设计及实践)第4章C++面向对象.ppt
- (Visual C++程序设计及实践)第5章WIN32编程.ppt
- (Visual C++程序设计及实践)第6章MFC基础.ppt
- (Visual C++程序设计及实践)第7章MFC文档视图.ppt
- (Visual C++程序设计及实践)第8章MFC对话框.ppt
- (WinForm程序设计及实践)第1章C#概述.ppt
- (WinForm程序设计及实践)第2章C#语言基础.ppt
原创力文档


文档评论(0)