第5章 开发子程序和包(理论)01.doc

第5章 开发子程序和包(理论)01.doc

ID:28768069

大小:745.00 KB

页数:29页

时间:2018-12-14

第5章 开发子程序和包(理论)01.doc_第1页
第5章 开发子程序和包(理论)01.doc_第2页
第5章 开发子程序和包(理论)01.doc_第3页
第5章 开发子程序和包(理论)01.doc_第4页
第5章 开发子程序和包(理论)01.doc_第5页
资源描述:

《第5章 开发子程序和包(理论)01.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第5章开发子程序和包本章学习内容1.过程2.函数3.程序包本章学习目标1.掌握过程的创建与使用2.掌握函数的创建与使用3.掌握包的创建与使用本章简介在第4章中,我们已经学习了PL/SQL语言、程序结构、流程控制、异常处理、开发动态SQL等知识。但是到目前为止,所创建的PL/SQL块都是匿名的,其缺点是每次执行时都需要被重新编译且没有被存储在数据库中,因此不能被其他的PL/SQL块使用,为了让编写的PL/SQL语句成为数据库的存储单元并能够共享,实现代码重用必须要使用程序包、过程和函数这些对象。本章将学习过程、函数和程序包等概念。过程与函数是命名的PL/SQL块,可以被编译后存储在数

2、据库中,以备执行。因此其他PL/SQL块可以按名称来调用它们。所以可以将商业逻辑、企业规则写成过程或函数保存到数据库中,以便共享。过程一般用于执行一个指定的操作,而函数一般用于计算并返回一个值。过程与函数也被称为子程序,因为它们是独立的、能够被父程序调用。程序包用于将逻辑相关的PL/SQL块或元素组织在一起,作为一个完整的单元存储在数据库中,用名称来标识程序包,它具有面向对象的程序设计语言的特点,是对PL/SQL块或元素的封装。程序包类似于JAVA语言中的类,其中的变量相当于类中的成员变量,过程和函数相当于类中的方法。5.1开发子程序子程序是指被命名的PL/SQL块,这种块可以带有

3、参数,可以在不同应用中多次调用。PL/SQL有两种类型的子程序:过程和函数。其中,过程用于执行特定操作,而函数则用于返回特定数据。通过将商业逻辑和企业规则集成到PL/SQL子程序中,可以简化客户端应用的开发和维护,提高应用的性能。5.1.1开发过程过程一般用于执行一个指定的操作,可以将常用的特定操作封装成过程。语法:CREATE[ORREPLACE]PROCEDUREprocedure_name(argument1[mode1]datatype1,argument2[mode2]datatype2,...)IS[AS]声明部分BEGIN执行部分EXCEPTION异常处理部分END;

4、在语法中,procedure_name用于指定过程名称,argument1、argument2等则用于指定过程的参数,IS或AS用于开始一个PL/SQL块。注意,当指定参数数据类型时,不能指定其长度。另外,当创建过程时,既可以指定输入参数(IN),又可以指定输出参数(OUT)及输入输出参数(INOUT)。通过在过程中使用输入参数,可以将应用环境的数据传递到执行部分。通过使用输出参数,可以将执行部分的数据传递到应用环境。定义子程序参数时,如果不指定参数模式,则默认为输入参数;如果需要定义输出参数,则必须指定OUT关键字;如果需要定义输入输出参数,则必须指定INOUT关键字。以下通过示

5、例说明创建过程和使用各种参数模式的方法。1.创建过程:无参数以下通过删除表中重复记录为例,来说明创建该种过程的方法。假设存在表tb_test,表中的数据如图1.5.1所示。图1.5.1表tb_test中的数据创建一个无参过程,完成删除此表中重复记录的操作,如图1.5.2所示。图1.5.2创建无参过程创建了过程proc_del_dup_rec之后,即可调用该过程。在SQL*Plus环境中,调用过程有两种方法:使用exec命令或者使用call命令。图1.5.3中使用了exec命令调用过程proc_del_dup_rec,并显示执行效果。显示删除重复记录后的结果图1.5.3使用exec命

6、令调用过程,并显示执行效果调用过程时,也可以使用PL/SQL块的方式,以下代码将以PL/SQL块的方式来调用proc_del_dup_rec过程:SQL>begin2proc_del_dup_rec;3end;4/PL/SQL过程已成功完成。注意:调用过程时,无需添加exec或call关键字。说明2.创建过程:带有IN参数创建过程时,可以通过使用输入参数,将应用程序的数据传递到过程中。当为过程定义参数时,如果不指定参数模式,则默认为输入参数,另外也可使用IN关键字显式地定义输入参数。下面以查询公交线路为例,说明创建这种过程的方法。假设存在表tb_station,其表中的数据如图1.

7、5.4所示。图1.5.4表tb_station中的数据创建一个带有IN参数的过程proc_transit_station,用于让用户输入公交车次、起点站和终点站即可查询出中间经过的公交线路,如图1.5.5所示。为过程参数指定默认值图1.5.5创建带有IN参数过程由图1.5.5可知,由于在创建过程proc_transit_station时所有参数都没有指定参数模式,所以这些参数全部都是输入参数。当调用该过程时,除了具有默认值的参数之外,其他参数必须提供数值,调用示例如图

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。