|
|
51CTO旗下网站
|
|
移动端

前言(1)

《Oracle PL/SQL程序设计(第6版)(上下册)》本书基于Oracle数据库12C,从用PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、构造PL/SQL应用程序、高级PL/SQL等6个方面详细而系统地讨论了PL/SQL以及如何有效地使用它。本节为前言。

作者:方鑫 译来源:人民邮电出版社|2017-09-06 17:41

前言(1)

Oracle PL/SQL程序设计(第6版)(上下册)

在世界各地,有数百万应用程序开发人员和数据库管理员使用Oracle公司提供的软件创建复杂的系统,以及管理庞大的数据。众多Oracle软件的中心是PL/SQL——一种编程语言,它为Oracle版本的SQL(结构化查询语言)提供过程性功能扩展,并成为Oracle开发工具箱中的编程语言(最有名的开发工具是Forms Developer和Reports Developer)。

在Oracle公司发布的几乎每一个新产品中,PL/SQL都是其中突出的一个支持技术。软件专业人员使用PL/SQL来完成各种编程功能,包括:

在Oracle Server中,利用基于PL/SQL的存储过程和数据库触发器实施关键业务规则;

完全在数据库中生成和管理XML文档链接;

将网页链接到Oracle数据库;

执行数据库管理任务并实现数据库管理任务的自动化——从建立行级安全到在PL/SQL程序中管理回滚段。

PL/SQL是Ada的仿写。Ada是一种高级语言,一种为美国国防部设计的程序语言,它强调数据抽象、信息隐藏以及现代设计策略等关键要素。Oracle明智的设计决策,使得PL/SQL成为一种功能强大的语言,结合了许多程序语言中最先进的元素,包括下面这点。

全方位的数据类型。从数字到字符串,包括复杂的数据结构如记录(类似于关系表中的行)、集合(这是Oracle版本的数组)和XMLType(在Oracle中通过PL/SQL管理XML文档)。

一种明确的和高度可读的块结构,使得它易于提高和维护PL/SQL的程序。

有条件、迭代和顺序控制语句,包括CASE语句和3种不同类型的循环。

在基于事件的错误处理中使用异常处理程序。

命名的、可重用的代码元素,如函数、程序、触发器、对象类型(类似于面向对象的类)和包(相关程序和变量的集合)。

PL/SQL是紧密集成到Oracle的SQL语言:我们可以直接从我们的过程式程序中执行SQL语句,而无需依赖任何类型的中间应用程序编程接口(API),如Java Database Connectivity(JDBC)或Open Database Connectivity(ODBC)。相对应地,我们也可以在一个SQL语句中调用自己的PL/SQL函数。

想要在21世纪取得成功的Oracle开发者必须学习并充分利用PL/SQL语言。这需要两个阶段:第一,我们必须熟悉和学习使用语言的不断增多的功能集;第二,在掌握了个体特性之后,我们必须学会把这些功能合在一起来创建复杂的程序。

因为这些原因,对于基础PL/SQL语言,Oracle的开发者需要一个坚实的、全面的资源。我们需要知道PL/SQL的基本构建块,并需要通过示例来学习,这样就可以避免一些试错。类似于任何编程语言,PL/SQL有一个正确的方式和很多错误的方式(至少是“非正确的”方式)来处理任何任务。我希望本书能够帮助大家尽可能地以最有效的方式学习如何使用PL/SQL语言。

本书的目标

本书将帮助我们实现如下目标。

充分利用PL/SQL

Oracle的参考手册描述了PL/SQL语言的所有特性,但里面不会告诉我们如何应用这些特性。事实上,在某些情形下,我们可以在复杂的环境中通过摸索和自学,掌握如何使用一个给定的功能。一般的图书和培训课程往往以相同的有限方式照本宣科。而在本书中,我们将超越基础知识,达到语言的高级层面,并探索特殊的方法,以利用特定的功能达到预期的结果。

利用PL/SQL来解决实际问题

我们夜以继日地编写PL/SQL模块,不是为了提高我们的技术水平,而是使用PL/SQL为公司或客户解决问题。在这本书中,作者将尽力帮助大家解决现实世界的问题、开发人员每天面对的问题(至少可以是能够用软件解决的问题)。为了做到这一点,我们在书中添加了示例——不只是小的代码片段,而是大量的应用组件,大家可以在各自的环境中立即使用它们。这本书中有很多很好的代码,在随附的网站中还有更多。在一些内容中,作者会利用示例代码指导大家通过分析来想出解决方案。用这种方式,我们会在大多数的具体任务中看到,如何在特定的任务中应用这些PL/SQL特性,以及这些特性的没有文档说明的潜在功能。

编写高效、易维护的代码

PL/SQL和Oracle的其他产品为惊人的开发效率提供了潜力。而如果我们不够细心,这种潜力也容易让我们自己陷入更深、更黑暗的陷阱。如果本书只能帮助程序员在更少的时间里写出更多的代码,那就失败了。作者的目的是要帮助大家建立开发的技能和技巧来创建应用程序,这样的程序易于适应变化,且更容易理解和维护。本书要教会大家使用全面的策略和代码架构,使得我们以强大、通用的方式利用PL/SQL来解决问题。

本书结构

本书的作者和O’Reilly Media致力于提供覆盖整个生命周期的PL/SQL语言的全面的、有效的技术。本书的当前版本描述了直到Oracle数据库12c第1版的PL/SQL的特性和功能。在这个版本中,我们把Oracle数据库12c作为基础PL/SQL版本。当然,在适当的情况下,我们也介绍了其他的早期版本引入的(或可用的)具体功能。本书提供了一张表格,列出了不同版本的主要特点(请参阅第1章中1.4节)。

从在Oracle 6数据库中发布1.0版本以来,PL/SQL在之后的多年间已经有了大幅改进。本书也经历了一系列改版以适应PL/SQL不断改进的功能。

在本书的当前版本中,最大的变化是全面涵盖了Oracle数据库12c第1版中新的PL/SQL功能。我们在第1章中对这些主要功能进行了汇总,并给出了详细讨论这些功能的章节信息。

作者对当前版本的内容很满意,希望读者也有同样的感受。这一版本有着比以往任何版本都有更多的信息,但作者认为,我们应继续保持幽默感和轻松的语气,多年来读者告诉我们,这样做可以使书本更易阅读,易于被理解,而且非常有用。

本书的作者不止一人,下面是具体每章的作者列表。在后面的“致谢”部分,对各位作者的贡献进行了详述。

本书内容

本书分为6个部分。

第1部分

从第1章开始介绍PL/SQL是从哪里来的,它有什么好处。作者提供了一个对PL/SQL语言的一些主要特点的快速浏览。第2章可以帮助读者创建PL/SQL程序,并尽可能快地运行它,包括明确的、简单的指令,可以让我们在SQL * Plus和其他一些常见的环境中执行PL/SQL代码。第3章回顾了PL/SQL语言的基础:介绍了PL/SQL语句的构成和块结构,以及如何在PL/SQL中写注释,等等。

第2部分

第4~6章,探讨了PL/SQL语言中的条件(IF和CASE)和顺序(GOTO和NULL)控制语句,循环和CONTINUE语句,以及异常处理。本书这一部分将教大家创建与程序复杂需求相关联的代码块。

第3部分

与我们所写的用来处理数据的每一个程序相关,大部分数据对于PL/SQL过程或函数都是本地(定义)的。第7~13章的侧重点在于我们可以在PL/SQL中定义的各种程序数据的类型,如数字、字符串、日期、时间戳、记录和集合等。读者会了解Oracle 11g数据库引入的新数据类型(SIMPLE_INTEGER、SIMPLE_FLOAT和SIMPLE_DOUBLE),以及许多其他的新版本引入的二进制、日期和时间戳类型。这一部分也涵盖了Oracle所提供的各种内置的功能,可以用来操作、修改数据。

第4部分

第14~16章,介绍了PL/SQL代码结构的一个核心要素——连接到底层数据库,这需要通过SQL语言实现。这一部分将告诉你如何定义事务,以便在数据库中进行更新、插入、合并和删除表,如何在PL/SQL程序中从数据库中查询用于处理的信息,以及如何使用本地动态SQL(NDS)来动态执行SQL语句。

第5部分

在这里,前面所提到的内容被汇到了一起。我们已经知道如何声明和处理变量,已经是错误处理和循环构建的专家。现在,从第17~22章,我们会学习创建程序的模块,其中包括过程、功能、包和触发器,以及如何把信息导入到PL/SQL程序或从导出。第20章讨论管理PL/SQL代码库,包括测试和调试程序,以及管理的依赖关系;它还提供了基于版本的重定义功能的概述,这是在Oracle数据库11g第2版中引入的。第21章的重点在于如何使用各种工具和技术,以在PL/SQL程序以外获得最佳性能。第22章涵盖了PL/SQL的I/O技术、DBMS_OUTPUT(将结果输出到屏幕上)和UTL_FILE(读和写文件),以及UTL_MAIL(发送邮件)和UTL_HTTP(从网页检索数据)。

第6部分

PL/SQL是一种成熟和丰富的语言,其功能是全面的,这些功能我们可能不会每天都使用,但可能是成功和失败的关键。第23章探讨了我们创建PL/SQL程序时所面临的安全挑战。第24章对PL/SQL架构进行了探索,包括PL/SQL对内存的使用。第25章为需要解决全球化和本地化问题的PL/SQL开发人员提供指导。第26章提供了针对Oracle的面向对象的功能的指导(对象类型和对象浏览)。

附录A到附录C,总结了正则表达式语法的细节,以及数字和日期格式。

本书第4版包含的如何在PL/SQL程序中调用Java和C代码的相关知识,已经转移到了本书的网站上。

如果读者是刚开始了解PL/SQL,那么通读本书将会提高你的PL/SQL技能并加深你对语言的理解。如果读者是已经精通PL/SQL的程序员,则可以跳到相应的部分直接采用特定的技术,来立即完成你的程序。无论你使用本书作为教学的指导还是参考,作者都希望它能够帮助你高效地使用PL/SQL。

本书没有包含的内容

本书尽管很厚,但它并不是包罗万象的。Oracle的环境是宏大复杂的。在本书中,我们把注意力集中于核心的PL/SQL语言本身,因此以下主题自然不会被涵盖在本书的范围内,除了偶尔或附带提及它们。

喜欢的朋友可以添加我们的微信账号:

【责任编辑:book TEL:(010)68476606】

回书目      下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Windows用户态程序高效排错

本书是一本介绍Windows系统上的用户态程序排错方法和技巧的书。本书分为4个章节,先介绍最重要的、通用的思考方法,以便制定排错步骤;再介...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊