欢迎来到天天文库
浏览记录
ID:33537802
大小:878.50 KB
页数:31页
时间:2019-02-26
《第4章plsql语言基础(理论)01修改后》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章PL/SQL语言基础本章学习内容1.PL/SQL语言简介2.程序结构3.流程控制4.异常处理5.开发动态SQL本章学习目标1.掌握PL/SQL程序结构2.掌握PL/SQL流程控制3.掌握PL/SQL异常处理4.掌握PL/SQL中开发动态SQL本章简介在第3章中,我们已经学习了同义词、序列、视图、索引等知识。并通过同义词以一种非常简便的方式去访问其它方案中的对象;通过视图将一些复杂的SQL语句封装起来方便使用;通过序列作为表的自动编号并做为主键实现了数据库的实体完整性;通过使用各种索引在数据量非常宠大的表中提高查询效率。但是要实现复杂的商用业务逻辑仅凭这些对象是远远不够的,我们必须使用
2、程序流程控制和异常处理机制等。本章将继续学习程序结构、流程控制、异常处理、开发动态SQL等知识。流程控制是PL/SQL对SQL最重要的扩展。流程控制结构包括条件控制、循环控制和顺序控制,流程控制为我们提供了实现复杂业务逻辑的一种途径。为处理程序中的异常,PL/SQL提供了一种异常错误处理机制,可以帮助实现对错误的捕获和处理,当异常发生时,PL/SQL会自动地捕获异常并自动地将程序控制流程转移到异常处理部分的程序。在PL/SQL程序设计中,可以直接使用DML和事务控制的语句,但DDL语句及系统控制语句却不能在PL/SQL中直接使用。如果需要在PL/SQL中使用DDL语句及系统控制语句,可以通
3、过使用动态SQL来实现,如需要动态建表或某个不确定的操作需要动态执行。4.1PL/SQL语言简介4.1.1PL/SQL概述PL/SQL是Oracle在标准SQL语言上的过程性扩展,它不仅允许嵌入SQL第4章理论第31页共31页语句,而且允许定义变量和常量,允许过程语言结构(条件分支语句和循环语句),允许使用异常来处理Oracle错误等。在任何运行Oracle的平台上,应用开发人员都可以使用PL/SQL。通过使用PL/SQL,可以在一个PL/SQL块中包含多条SQL语句和PL/SQL语句。PL/SQL可以用于创建存储过程、触发器和程序包等,也可以用于处理业务规则、数据库事件或给SQL命令的执
4、行添加程序逻辑。4.1.1PL/SQL优点PL/SQL是一种可移植的高性能事务处理程序,它支持SQL和面向对象编程,提供了良好的性能和高效的处理能力,具有以下6个方面的优点。1.提高应用程序的运行性能在编写Oracle数据库应用程序时,开发人员可以直接将PL/SQL块内嵌到应用程序中,其最大的优点是可以降低网络开销、提高应用程序性能。对于其他异构数据库(例如SQLServer、Sybase、DB2等),当应用程序访问RDBMS时,每次只能发送单条SQL语句。而对于Oracle数据库而言,通过使用PL/SQL块,可以将多条SQL语句组织到同一个PL/SQL块中,从而降低了网络开销,提高了应用
5、程序的性能。2.提供模块化的程序设计功能当开发数据库应用程序时,为了简化客户端应用程序的开发和维护工作,可以首先将企业规则或商业逻辑集成到PL/SQL子程序(过程、函数和包)中,然后在应用程序中调用子程序实现相应的程序功能。3.允许定义标识符当使用PL/SQL开发应用模块时,为了使应用模块与应用环境实现数据交互,需要定义变量、常量、游标等各种标识符。例如,函数get_sal中的no为输入参数,用于接收雇员编号的输入值,而salary变量则用于临时存储雇员工资。4.具有过程语言控制结构PL/SQL是Oracle在标准SQL上的过程性扩展,它不仅允许在PL/SQL块内嵌入SQL语句,而且允许在
6、PL/SQL块中使用各种类型的条件分支语句和循环语句。5.具有良好的兼容性PL/SQL是Oracle所提供的用于实现应用模块的语言,在允许运行Oracle的任何平台上都可以使用PL/SQL。例如,不仅可以在Oracle数据库中使用PL/SQL开发数据库端的过程、函数和触发器,也可以在Oracle提供的应用开发工具Developer中使用PL/SQL开发客户端的过程、函数和触发器。6.处理运行错误当设计并开发应用程序时,为了提高应用程序的健壮性,可以使用PL/SQL所提供的异常处理(EXCEPTION)集中处理各种Oracle错误和PL/SQL错误,从而简化错误处理。4.1.2PL/SQL块
7、所有的PL/SQL程序都以块作为基本单位组成。块中包含过程化语句和SQL的DML语句。这些块可以按顺序出现,也可以相互嵌套(一个块在另一个块的内部)。按是否带有名称以及在数据库中的存储方式,块可以分为以下5类。第4章理论第31页共31页1.匿名块匿名块是出现在应用程序中的没有名字且不存储到数据库中的块。匿名块可以出现在SQL语句可以出现的地方,它们可以调用其他程序,却不能被其他程序调用。2.命名块命名块是一种带有标签的匿
此文档下载收益归作者所有