有利于客户/服务器环境应用的运行
对于客户/服务器环境来说,真正的瓶颈是网络上。无论网络多快,只要客户端与服务器进行大量的数据交换,应用运行的效率自然就回受到影响。如果使用PL/SQL进行编程,将这种具有大量数据处理的应用放在服务器执行,自然就省去了数据在网上的传输时间。
适合于客户环境
PL/SQL由于分为数据库PL/SQL部分和工具PL/SQL。对于客户端来说,PL/SQL可以嵌套到相应的工具中,客户端程序可以执行本地包含PL/SQL部分,也可以向服务发SQL命令或激活服务器端的PL/SQL程序运行。
模块化
PL/SQL程序结构是一种描述性很强、界限分明的块结构、嵌套块结构,被分成单独的过程、函数、触发器,且可以把它们组合为程序包,提高程序的模块化能力。
过程化
PL/SQL是Oracle在标准SQL上的过程性扩展,不仅允许在PL/SQL程序内嵌入SQL语句,而且允许使用各种类型的条件分支语句和循环语句,可以多个应用程序之间共享其解决方案。
提供大量内置程序包
ORACLE提供端来了大量的内置程序包,通过这些程序包能够实现DBS的一些低层操作、高级功能,不论对DBA还是应用开发人员都具有重要作用。
运行错误的可处理性
使用PL/SQL提供的异常处理(EXCEPTION),开发人员可集中处理各种ORACLE错误和PL/SQL错误,或处理系统错误与自定义错误,以增强应用程序的健壮性。
简单总结,PL/SQL的优点就是:
减少网络流量,提高应用程序性能
具有良好的兼容性,不同的开发工具可以使用相同的PL/SQL脚本
提供模块化程序开发能力,简化了开发和维护
提供了程序控制结构,增强的业务处理能力
提供了异常处理,让PL/SQL程序更健壮
当然除了这些优点外,PL/SQL还有其它的优点,如:更好的性能、可移植性和兼容性、可维护性、易用性与快速性,允许定义标识符以增加程序可读性等。
三、PL/SQL块
PL/SQL程序由三个部分组成,即声明部分、执行部分、异常处理部分。
PL/SQL块的语法结构:
DECLARE
--声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数
BEGIN
-- 执行部分: 过程及SQL语句,即程序的主要部分
EXCEPTION
-- 执行异常部分: 错误处理
END;
PL/SQL块可以分为:
匿名块:没有名称的块,动态构造,是直接执行的块。只能执行一次,可调用其它程序,但不能被其它程序调用。
命名块:是带有名称的块,这个名称就是标签。命名块可分为:
子程序:存储在数据库中的存储过程、函数等。当在数据库上建立好后可以在其它程序中调用它们。
触发器:当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
程序包:存储在数据库中的一组子程序、变量定义。在包中的子程序可以被其它程序包或子程序调用。但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序。