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

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

* 7.4.2 包主体 创建程序包主体语句: create [or replace] package body package_name is [pragma serially_reusable;] [record_type_definition…] [exception_declarations…] … [cursor_body…] [function_spec…] [procedure_spec…] [call_spec…] [begin --初始化包中的变量等 sequence_of_statements] end [package_name] * 7.4.3 重载 PL/SQL允许两个或多个包级子程序拥有相同的名称,这就是PL/SQL程序的重载。在通常情况下,在程序包中的过程和函数必须具有唯一的名称,用于唯一表示一个过程和函数。PL/SQL允许重载,也就是在程序包中的过程和函数可以具有相同的名称,但它们的特性要有所区别,即同名过程和函数的参数数量、次序和参数类型存在区别。 注意: 如果过程或函数的参数类型不相同,但数据类型属于同一家族时,也不能对它们进行重载。 调用重载函数时,PL/SQL按照参数的个数和类型来解析对函数的调用。 * * * 在很多时候,都需要保存PL/SQL程序块,以便随后可以重新使用。 这也意味着,程序块需要一个名称,这样需才可以调用或者引用它。 命名的PL/SQL程序块可被独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。 Oracle提供了四种类型的可存储的程序:过程、函数、触发器和程序包。 * * * 第7章 存储过程、触发器和程序包 * 本章知识要点: 创建Oracle存储过程 调用存储过程 理解存储过程中各种形式的参数 为过程添加局部变量和子过程 PL/SQL程序中的函数应用 触发器的应用 语句级触发器的特点 行级触发器的特点 INSTEAD OF触发器的特点 系统级触发器的特点 用户事件触发器的特点 程序包规范和主体 程序包中的私有过程和公有过程 程序包中的初始化代码 理解程序包中函数或过程的重载 了解Oracle提供的常见系统程序包 * 7.1 存储过程 存储过程是一种命名的PL/SQL程序块,它可以接受零个或多个参数作为输入、输出,或者既作输入又作输出的参数。过程被存储在数据库中,并且存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUTE命令或PL/SQL程序块内部调用。由于存储过程是已经编译好的代码,所以在调用的时候不必再次进行编译,从而提高了程序的运行效率。 7.1.1 创建存储过程 创建存储过程之前,先来看一下创建存储过程的语法结构。定义存储过程的语法如下: * create procedure procedure_name [(parameter[,parameter,...])] is [local declarations] begin execute statements [exception exception handles ] end [procedure _name] 7.1.1 创建存储过程 存储过程的调用 1、在PL/SQL程序块中调用存储过程 2、直接在SQL*Plus中使用EXECUTE语句调用存储过程 查看存储过程创建时的出错信息 SHOW ERROR * 7.1.2 参数 在创建存储过程时,需要考虑的一件重要事情就是过程的灵活性,以方便随后可以重用。通过使用“参数”可以使程序单元变得很灵活,参数是一种向程序单元输入和输出数据的机制,存储过程可以接收和返回零到多个参数。Oracle有3种参数模式:IN、OUT、IN OUT。 * 7.1.2 参数 IN参数 1、名称表示法 procedure_name(param_name=value[, param_name=value]); 2、位置表示法 提供的参数值顺序必须与过程定义的参数顺序相同 3、混合表示法 * 7.1.2 参数 OUT参数 1、VARIABLE命令绑定参数值 2、查看执行结果 print命令 select语句 IN OUT参数 * 7.1.3 默认值 存储过程的参数也可以有默认值,这样当调用该过程时,如果未向参数传入值,则该参数将使用定义的默认值。例如,下面修改了ADD_EMPLOYEE存储过程,为其中的参数提供了默认值: * SQL create or replace procedure add_employee( 2 id_param in n

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档