- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]MTSE-Oracle_08
本章目标 8.1 存储过程 从本质上来看,过程就是命名的PL/SQL程序块,它可以被赋予参数并存储在数据库中,然后由另外一个应用或PL/SQL例程调用。 下面详细介绍过程的创建、执行、安全、使用参数等内容。 8.1.1 创建或替换 [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]; 示例 8.1.2 执行过程 创建过程之后即可执行过程。用户既可以从匿名PL/SQL程序块中直接调用,也可以在SQL*Plus中使用execute()函数来执行。Execute()函数可以简写为exec。 首先,使用匿名PL/SQL程序块执行过程。如图13-4所示的示例使用了匿名PL/SQL程序块执行前面创建的my_proc过程。 还可以使用exec函数执行过程。相对来说,使用exec函数执行过程比使用匿名PL/SQL程序块调用my_proc过程更快捷、方便。 8.1.3 使用参数 过程可以进行参数化处理。参数可以是任意合法的PL/SQL类型。参数可以有3种模式,即in、out和in out各种参数的意义分别如下:。 in参数是输入参数,需要通过调用者传入,只能由过程来读取。 out参数是输出参数,能够由过程写入。该参数适合用于过程向调用者返回多个信息。 in out参数同时具有in参数和out参数的特性,过程可以读取和写入它们的值。 参数传递 前面的示例使用了p_parm=100方式传递参数。实际上,在Oracle系统中,可以使用3种方式传递参数,即: 使用名称表示法 使用位置表示法 使用混合表示法 局域声明 如同匿名PL/SQL程序块一样,过程也可以定义局域变量。这些定义紧随可选的参数列表之后。在匿名PL/SQL程序块中,它使用declare关键字开始。在过程声明中,由于使用了create or replace语法,所以不必再使用declare关键字。在前面的swap过程示例中,l_temp就是一个局域变量。 除了局域变量之外,在局域声明部分还可以定义其他内容。用户可以定义记录、类型、数组,甚至还可以是其它过程。 8.2 函数 函数与过程非常类似,也是数据库中存储的命名PL/SQL程序块。创建函数与创建过程要都遵循同样的规则。函数与过程的安全方式和参数传递也相同。函数的主要特征是它必须返回一个值。这个返回值既可以是number或varchar2这样简单的数据类型,也可以是PL/SQL数组或对象这样复杂的数据类型。 8.2.1 创建语法 [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]; 8.2.2 调用函数 ---返回值 定义过程和定义函数的主要区别之一是,定义函数必须使用return子句返回数据。在定义函数的函数体的任何地方,用户都可以return expression;子句。需要注意的是,这里的expression表达式要等于return数据类型。 如图所示的是一个创建函数的示例。 8.2.2 调用函数 --- 确定性 如果对于给定的输入,函数总是能够返回完全相同的结果,则称该函数具有确定性。例如,upper()函数具有确定性,如果向其输入Oracle Database 10g,那么它将返回ORACLE DAT
您可能关注的文档
- [信息与通信]DLT 5081-1997水力发电厂自动化设计技术规范.pdf
- [信息与通信]DSP C语言编程规范.doc
- [信息与通信]DWDM系统习题册答案教师用.doc
- [信息与通信]ds18b20+程序+详细使用说明.doc
- [信息与通信]DUM227 4850系列智能开关电源系统.pdf
- [信息与通信]DME资料.pdf
- [信息与通信]DSP与嵌入式处理器基础及ADI DSP介绍.ppt
- [信息与通信]EDACN论坛设计交流版帖子汇总2004.pdf
- [信息与通信]EDA软件应用与开发.pdf
- [信息与通信]EDGE原理.ppt
- 教科版(2017秋)科学二年级上册2.6 做一顶帽子 教学设计.docx
- 河北高频考点专训四 质量守恒定律的应用教学设计---2024-2025学年九年级化学人教版(2024)上册.docx
- 大单元教学【核心素养目标】6.3 24时计时法教学设计 人教版三年级下册.docx
- 河南省商城县李集中学2023-2024学年下学期九年级历史中考模拟八(讲评教学设计).docx
- 第18章 第25课时 正方形的性质2023-2024学年八年级下册数学课时分层作业教学设计( 人教版).docx
- Module 8 模块测试 教学设计 2024-2025学年英语外研版八年级上册.docx
- 2024-2025学年小学数学五年级下册浙教版教学设计合集.docx
- 2024-2025学年小学劳动四年级下册人民版《劳动》(2022)教学设计合集.docx
- 2024-2025学年小学数学三年级上册冀教版(2024)教学设计合集.docx
- 2024-2025学年高中生物学必修1《分子与细胞》人教版教学设计合集.docx
文档评论(0)