Oracle Database 10g基础教程 教学课件 作者 7 302 09864 6k ch14.pptVIP

Oracle Database 10g基础教程 教学课件 作者 7 302 09864 6k ch14.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章 过程、函数和程序包 教学目标 理解和掌握过程、函数和程序包的基本概念和特点 理解在过程中使用输入和输出参数的特点 了解函数和过程的区别和联系 理解和掌握程序包的结构的特点 理解和掌握程序包的规范 教学难点和重点 过程、函数和程序包的基本概念和特点 在过程中使用输入和输出参数 函数和过程的区别和联系 程序包的结构 程序包的规范 教学过程 14.1 概述 14.2 过程 14.3 函数 14.4 程序包 14.1 概述 使用过程、函数和程序包代替PL/SQL程序块由许多好处,例如增强可扩展性、提高模块化水平、可重用性增强、可维护性加强、有利于抽象和数据隐藏、增强安全性等。 14.2 过程 从本质上来看,过程就是命名的PL/SQL程序块,它可以被赋予参数,存储在数据库中,然后由另外一个应用或PL/SQL例程调用。 下面,详细讲述过程的创建、执行、安全、使用参数等内容。 创建或替换 [create [or replace]] procedure procedure_name[(parameter[, parameter]…)] [authid {definer | current_schema}]{is | as} [pragma autonomous_transaction;] [local_declarations] begin executable statements [exception exception handlers] end [procedure_name]; 执行过程 过程创建之后,就可以执行了。用户既可以从匿名PL/SQL程序块中直接调用,也可以在SQL*Plus中使用execute函数来执行。 execute函数可以简写为exec。 使用参数 过程可以进行参数化处理。参数可以是任意合法的PL/SQL类型。参数可以有3种模式,即in、out和in out。 in参数是输入参数,需要通过调用者传入,只能由过程来读取。也就是说,他们是只读值。这是参数行为中最常使用的模式,是没有给出参数模式指示器时的默认模式。in参数可以具有默认值,因此调用者不一定必须为其提供指定值。 out参数是输出参数,能够由过程写入。该参数适合用于过程向调用者返回多个信息。out参数没有默认值,也不能是常量或表达式,必须向out参数传递返回值。 in out参数同时具有in参数和out参数的特性,过程可以读取和写入他们的值。 局域声明 如同匿名PL/SQL程序块一样,过程也可以定义局域变量。这些定义紧随可选的参数列表之后。在匿名PL/SQL程序块中,它使用declare保留字开始。在过程声明中,由于使用了create or replace语法,所以不必再使用declare保留字了。在前面的swap过程示例中,l_temp就是一个局域变量。 除了局域变量之外,在局域声明部分还可以定义其他许多内容。用户可以定义记录、类型、数组,甚至还可以是其他过程。 14.3 函数 函数与过程非常类似,也是数据库中存储的命名PL/SQL程序块。创建函数与创建过程,都遵循同样的规则。函数与过程的安全方式和参数传递也相同。函数的主要特征是它必须返回一个值。这个返回值既可以是number或varchar2这样简单的数据类型,也可以是PL/SQL数组或对象这样复杂的数据类型。 语法 [create [or replace]] function function_name [(parameter[, parameter]…)] return datatype [authid {definer | current_schema}] [parallel_enable] [deterministic] {is | as} [pipelined [using implementation_type]] [aggregate [update value] {with external context} using implementation_type] [pragma autonomous_transaction;] [local declarations] begin executable statements [exception exception handlers] end [name]; 返回值 定义过程和定义函数的主要区别之一是,定义函数必须使用return子句返回数据。在定义函数的函数体中的任何地方,用户都可以return expresson;子句。 注意,这里的expression表达式要等于return数据类型。 图14-25是一个创建函数的示例。 确定性 如果对于给定的输入,函数总是会返回完全相同的

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档