appfuse中文教程PLSQL中文教程

上传人:ni****g 文档编号:559578411 上传时间:2022-08-09 格式:DOC 页数:232 大小:282KB
返回 下载 相关 举报
appfuse中文教程PLSQL中文教程_第1页
第1页 / 共232页
appfuse中文教程PLSQL中文教程_第2页
第2页 / 共232页
appfuse中文教程PLSQL中文教程_第3页
第3页 / 共232页
appfuse中文教程PLSQL中文教程_第4页
第4页 / 共232页
appfuse中文教程PLSQL中文教程_第5页
第5页 / 共232页
点击查看更多>>
资源描述

《appfuse中文教程PLSQL中文教程》由会员分享,可在线阅读,更多相关《appfuse中文教程PLSQL中文教程(232页珍藏版)》请在金锄头文库上搜索。

1、appfuse中文教程PLSQL中文教程篇一 : PLSQL中文教程 第1章PL/SQL介绍 P L/SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对O racle数据库进行访问。由于该语言集成于数据库服务器中,所以P L/SQL代码可以对数据进行快速高效的处理。除此之外,可以在O racle数据库的某些客户端工具中,使用P L/SQL语言也是该语言的一个特点。本章的主要内容是讨论引入P L/SQL语言的必要性和该语言的主要特点,以及了解P L/SQL语言的重要性和数据库版本问题。还要介绍一些贯穿全书的更详细的高级概念,并在本章的最后就我们在本书案例中使用的数据库表的若干约定做

2、一说明。 1.1 为什么要引入P L/SQL语言 O racle数据库是一种关系型数据库。通常我们把用于访问这种关系型数据库的程序设计语言叫做结构化查询语言,即S QL语言。S QL是一种灵活高效的查询语言,其主要功能是对关系数据库中的数据进行操作和处理。例如,下面的S QL语句可以从数据库中将学习营养专业的全部学生一次删除: DELETE FROM students WHERE major = Nutrition; S QL是先进的第四代程序设计语言,使用这种语言只需对要完成的任务进行描述,而不必指定实现任务的具体方法。以上面例子中的D ELETE语句为例,我们并不知道S QL语言是如何找到

3、学习营养专业的学生的。虽然按一般语言的做法推测,数据库服务器要按某种顺序逐个访问数据库表中的所有学生记录以决定删除满足条件的学生记录。但实际上,我们无法知道这些删除操作的细节。 第三代程序设计语言如C语言和C OBOL语言等是面向过程的语言。用第三代语言编制的程序是一步一步地实现程序功能的。例如,我们可以用下面的程序段来实现上述的删除操作: LOOP over each student record IF this record has major = Nutrition THEN DELETE this record; END IF; END LOOP; 面向对象的程序设计语言如C +或J

4、ava也属于第三代程序设计语言。虽然这类语言采用了面 向对象的程序结构,但程序中算法的实现还是要用各种语句逐步指定。 各种语言都有其自身的优缺点。相对于第三代程序设计语言来说,S QL一类的第四代程序语言使用起来非常简单,语言中语句的种类也比较少。但这类语言将用户与实际的数据结构和算法隔离开来,对数据的具体处理完全由该类语言的运行时系统实现。而在某些情况下,第三代语言使用的过程结构在表达某些程序过程来说是非常有用的。这也就是引入P L/SQL语言的原因,即P L/SQL语言将第四代语言的强大功能和灵活性与第三代语言的过程结构的优势融为一体。 P L / S Q L代表面向过程化的语言与S Q

5、L语言的结合。我们可以从该语言的名称中看出,P L/SQL是在S QL语言中扩充了面向过程语言中使用的程序结构,如: ? 变量和类型 ? 控制语句和循环 ? 过程和函数 ? 对象类型和方法 P L/SQL语言实现了将过程结构与Oracle SQL的无缝集成,从而为用户提供了一种功能强大的结构化程序设计语言。例如,我们假设要修改一个学生的专业。如果没有该学生的记录的话,我们就为该学生创建一个新的记录。用P L/SQL编制的程序代码可以实现我们的要求,如下所示: 节选自在线代码3gl_4gL.sql DECLARE /* Declare variables that will be used in

6、 SQL statements */ v_NewMajor VARCHAR2 := History; v_FirstName VARCHAR2 := Scott; v_LastName VARCHAR2 := Urman; BEGIN /* Update the students table. */ UPDATE students SET major = v_NewMajor WHERE first_name = v_FirstName AND last_name = v_LastName; /* Check to see if the record was found. If not, th

7、en we need to insert this record. */ IF SQL%NOTFOUND THEN INSERT INTO students VALUES; END IF; END; 上面的例子中有两个不同的S QL语句,这两个语句是第四代程序结构,同时该段程序中还使用了第三代语言的结构。 注意为了运行上面的程序例子,先要创建程序中引用的数据库对象。可以使用本书C D-ROM中提供的脚本文件r elTa ble.sql来实现上述工作。有关创建上述对象的进一步信息,请参见1 .3.3节的内容。 P L/SQL语言在将S QL语言的灵活性及功能与第三代语言的可配置能力相结合方面是独

8、一无 提供了功能强大、健壮可靠的程序设计语言。 1.1.1 PL/SQL与网络传输二的。该语言集成了面向过程语言的过程结构和强大的数据库操作,为设计复杂的数据库应用 目前的大多数数据库应用一般都采用客户/服务器或三层模式。在客户/服务器模式下,驻留在客户机上的应用程序使用S QL语句向数据库服务器发送服务请求。通常,发送这种请求将导致过多的网络传输,如图1 -1左半部分的框图所示,每个S QL语句将引起一次网络传输。现在将该图的左面与右面相比较,我们可以发现使用P L / S Q L语言可以将几个S Q L语句合并为一个P L/SQL块发送给服务器,从而减少网络通信流量并提高应用程序的执行速度

9、。 Oracle数据库服务器Oracle数据库服务器 客户应用客户应用 使用SQL使用PL/SQL 图1-1 在客户/服务器环境下使用S QL和P L/SQL的比较 即使在客户机与服务器都运行在同一台设备上时,使用P L/SQL编制的应用程序的性能也会有提高。在这种情况下,虽然不需要进行网络传输,但将S QL语句打包传送将减少对数据库的访问次数。 P L / S Q L语言的打包功能也适用于三层结构应用。在这种模式下,客户机与应用服务器进行通信,而应用服务器再与数据库交互操作,P L/SQL有利于应用服务器与数据库的通信。有关P L/SQL的这种应用环境,我们将在本书的第2章中讨论。 1.1.

10、2 PL/SQL标准 O rcale数据库支持A NSI标准的S QL语言,即ANSI X3.135-1992文档中“数据库语言S QL”定义的S Q L语言。该标准通常称为S Q L 9 2标准,只定义了S Q L语言本身。该标准并没有定义P L/SQL所提供语言的3 GL扩充内容。S QL92指定了三个实现层次:初等级别、中等级别和最高级别。O racle7的7 .0版实现了由美国国家标准技术研究所认证的S QL92标准的初等级别。现在O racle公司正在与美国国家标准协会A NSI共同努力以确保O racle数据库和P L/SQL语言的最新版本将实现S QL92的最高级别。 1.2 P

11、L/SQL的特点 介绍P L/SQL的不同特点与功能的最好方式是通过实际程序案例演示。本章下面几节将描述P L/SQL语言的若干主要特点。 1.2.1 PL/SQL的基本特点 本书的主要内容是介绍P L/SQL语言的高级功能。在下面几节中,我们将介绍该语言的基本特点。如果读者要进一步了解有关信息,请参考P L/SQL用户指南及索引手册,或参考O racle8P L/SQL程序设计一书。 1. PL/SQL的块结构 P L/SQL程序的基本结构是块。所有的P L/SQL程序都是由块组成的,这些块之间还可以相互嵌套。通常,程序中的每一块都实现一个逻辑操作,从而把不同的任务进行分割,由不同的块来实现

12、。P L/SQL的块结构如下所示: DECLARE /* Declarative section - PL/SQL variables, types, cursors, and local subprograms go here. */ BEGIN /* Executable section - procedural and SQL statements go here. This is the main section of the block and the only one that is required. */ EXCEPTION /* Exception-handling sect

13、ion - error-handling statements go here. */ END; 在上面演示的块结构中,只有执行部分是必须的,声明部分和异常处理部分都是可选的。块结构中的执行部分至少要有一个可执行语句。P L/SQL块采用的这种分段结构将P L/SQL程序的不同功能各自独立出来。 P L/SQL的这种特点是仿效第三代程序设计语言A da采用的程序结构。在A da语言中使用的很多程序结构包括A da使用的块结构都适用于P L/SQL语言。除此之外,在P L/SQL语言中还可以发现A da语言使用的异常处理方法、过程和函数声明以及包的定义的语法等特征。 2. 错误处理 P L/SQ

14、L块中的异常处理部分是用来响应应用程序运行中遇到的错误。把程序的主体部分与错误处理部分代码相互隔离,这样,程序的结构看起来十分清晰。例如,下面的P L/SQL块演示了将异常发生的时间及将遇到该异常错误的用户名记录在日志表的处理过程。 节选自在线代码Error.sql DECLARE v_ErrorCode NUMBER; - Code for the error v_ErrorMsg VARCHAR2; - Message text for the error v_CurrentUser VARCHAR2; - Current database user v_Information VARCHAR2; - Information about the error BEGIN /* Code that processes some data here */ EXCEPTION WHEN OTHERS THEN - Assign values to the log variables, using built-in - functions. v_ErrorCode := SQLCODE; v_ErrorMsg := SQLERRM; v_CurrentUser := USER; v_Information := Error encounter

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号