第7章_存储过程、触发器和程序包-zhy.ppt

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

7.3.5 用户事件触发器 用户事件触发器是建立在模式级的操作上的触发器。激活该类型触发器的用户事件包括:CREATE、ALTER、DROP、ANALYZE、ASSOCIATE STATISTICS、DISASSOCIATE 、STATISTICS、COMMENT、GRANT、REVOKE、RENAME、TRUNCATE、LOGOFF、SUSPEND和LOGON。 * 7.4 程序包 程序包其实就是被组合在一起的相关对象的集合,当程序包中任何函数或存储过程被调用时,程序包就被加载入到内存中,这样程序包中的任何函数或存储过程的子程序访问速度将大大加快。例如,在PL/SQL程序中,为了输出运行结果,在程序的代码中使用了DBMS_OUTPT.PUT_LINE语句。事实上,这是调用程序包DBMS_OUTPUT中的PUT_LINE过程。DBMS_OUTPUT程序包的主要功能就是在PL/SQL程序中的输入和输出。 * 7.4.1 程序包规范 对于程序包,规范就像一个说明书,它说明了在程序包中哪些过程或函数可以使用,如何使用。程序包规范必需的,并且必须在程序包主体之前创建。 创建程序包规范的语法形式如下: * create [or replace] package package_name is [public_variable_declarations…] [public_type_declarations…] [public_exception_declarations…] [public_cursor_declarations…] [function_declarations…] [procedure_specifications…] end [package_name] * 7.4.2 主体 程序包主体包含了在规范中声明的过程和函数的实现代码,程序包主体的名称必须与规范的名称相同,这个相同的名称将规范与主体结合在一起组成程序包。另外,程序包主体中定义的过程和函数的名称、参数和返回值等必须与规范中声明的完全区配。 * 7.4.3 重载 PL/SQL允许两个或多个包级子程序拥有相同的名称,这就是PL/SQL程序的重载。在通常情况下,在程序包中的过程和函数必须具有惟一的名称,用于惟一表示一个过程和函数。PL/SQL允许重载,也就是在程序包中的过程和函数可以具有相同的名称,但只需它们的特性有所区别。 * * * * 第7章存储过程、触发器和程序包 存储过程(重点) 函数(重点) 触发器 程序包 * 在很多时候,都需要保存PL/SQL程序块,以便随后可以重新使用。这也意味着,程序块需要一个名称,这样需才可以调用或者引用它。 命名的PL/SQL程序块可被独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。 Oracle提供了四种类型的可存储的程序:过程、函数、触发器和程序包。 * 7.1 存储过程 存储过程是一种命名的PL/SQL程序块,它可以接受零个或多个参数作为输入、输出,或者既作输入又作输出的参数。 过程被存储在数据库中,并且存储过程没有返回值。 存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用。 由于存储过程是已经编译好的代码,所以在调用的时候不必再次进行编译,从而提高了程序的运行效率。 7.1.1 创建存储过程 定义存储过程的语法: * create procedure procedure_name [(parameter[,parameter,...])] is [local declarations] begin execute statements [exception exception handlers ] end [procedure _name] 7.1.1 创建存储过程 注意: (1)存储过程与匿名程序块类似,也包括三部分:声明部分、执行部分和异常处理部分。 (2)不能使用DECLARE关键字表示声明部分,IS关键字后声明的变量为过程体内的局部变量。 (3)不能指定参数类型的长度和精度。 (4)重新定义存储过程(同名),必须使用OR REPLACE选项,使新版本覆盖旧版本。 (5)可以在PL/SQL程序块中调用存储过程,也可以直接在SQL*PLUS中使用EXECUTE语句调用。 * 7.1.1 创建存储过程 * 注意:若在创建存储过程时出现了错误,则使用: SHOW ERRORS 命令显示创建时产生的错误。 7.1.2 参数 Oracle有三种参数模式:IN、OUT和IN OUT。 IN参数 例:将“向scott

文档评论(0)

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

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

1亿VIP精品文档

相关文档