基本的SQL语句时极其常用的,但相对于SQL而言Oracle公司在SQL基础上引入一种过程化编程语言.PL/SQL(Producedural Language/SQL).PL/SQL构建于SQL自上.可以用来编写SQL语句的程序.PL/SQL是第三代语言.Oracle在此集成之上做的扩展.
(A)PL/SQL基本概念:
PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL. PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言.
(B)PL/SQL的作用:
使用PL/SQL可以编写具有很多高级功能的程序,虽然通过多个SQL语句可能也能实现同样的功能,但是相比而言,PL/SQL具有更为明显的一些优点:
(1).能够使一组SQL语句的功能更具模块化程序特点;
(2).采用了过程性语言控制程序的结构;
(3).可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断;
(4).具有较好的可移植性,可以移植到另一个Oracle数据库中。
(5).集成在数据库中,调用更快.
(6).减少了网络的交互,有助于提高程序性能.
通过多条SQL语句实现功能时,每条语句都需要在客户端和服务端传递,而且每条语句的执行结果也需要在网络中进行交互,占用了大量的网络带宽,消耗了大量网络传递的时间,而在网络中传输的那些结果,往往都是中间结果,而不是我们所关心的。
而使用PL/SQL程序是,因为程序代码存储在数据库中,程序的分析和执行完全在数据库内部进行,用户所需要做的就是在客户端发出调用PL/SQL的执行命令,数据库接收到执行命令后,在数据库内部完成整个PL/SQL程序的执行,并将最终的执行结果返回给用户。在整个过程中网络里只传输了很少的数据,减少了网络传输占用的时间,所以整体程序的执行性能会有明显的提高.
(C)PL/SQL程序的基本结构:
PL/SQL块由四个基本部分组成:声明、执行体开始、异常处理、执行体结束.下面是四个部分的基本结构:
DECLARE—可选部分:变量、常量、游标、用户定义异常的声明
……
BEGIN—必要部分:SQL语句和PL/SQL语句构成的执行程序
……
EXCEPTION—可选部分:程序出现异常时,捕捉异常并处理异常
……
END;—必须部分
在数据库执行PL/SQL程序时,PL/SQL语句和SQL语句是分别进行解析和执行的。 PL/SQL块被数据库内部的PL/SQL引擎提取,将SQL语句取出送给Oracle的SQL引擎处理,两种语句分别在两种引擎中分析处理,在数据库内部完成数据交互、处理过程.
(D)PL/SQL程序在Oracle 10G中的包含内容:
本机上装的的Oracle 10G版本. 在Oracle 10G中包含这类语言的标准编程结构. 例如:
(1)块结构:
(2)变量和类型
(3)条件逻辑
(4)循环处理
(5)游标: Oracle中保存着查询返回的结果.
(6)过程
(7)函数
(8)包: Oralce中主要用来将过程和函数封装组合到一个单元中去.
通常PL/SQL用于向数据库中加入业务逻辑.这种集中化的代码可以由任何能够访问数据库的程序调用. 因为PL/SQL是基于SQL标准自上的. 其中包括SQL*PLus。C程序/Java程序等.
最后推荐各位一本关于Oracle中PL/SQL编程经典书籍;Oracle Database 10G PL/SQL Programming. 中文版已经出版. Orcale 11G 只有英文版本.
本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765103