PL/SQL(Procedural Language extensions to SQL)是Oracle对标准SQL语言的过程化扩展,是专门用于各种环境下对Oracle数据库进行访问和开发的语言.实际上是SQL语言的非过程化与第三代开发语言的过程化结合,产生了PL/SQL语言.费话就不多说了,先举个例子来看:
首先在你的Oracle数据库中建一个简单的用户表:
CREATE TABLE USER_TAB(
ID NUMBER(10) NOT NULL,
USERNAME VARCHAR2(50) NOT NULL
)
以后所举例子都要用到这个表(一些记录自己加).
在你的PL/SQL Developer里执行以下句话:
DECLARE
v_username user_tab.username%TYPE;
BEGIN
SELECT username INTO v_username FROM user_tab WHERE ID=1;
IF v_username='princeshow' THEN
UPDATE user_tab SET username='prince' WHERE ID=2;
ELSE
UPDATE user_tab SET username='show' WHERE ID=3;
END IF;
END;
--执行以后一定要commit否则的话在OEMC(oracle企业管理控制台)里是看不到更新的数据
COMMIT;
在该程序中,select语句和2个update语句是非过程化的SQL语言,完成对数据库的操作,而变量的声明 if语句的逻辑判断则是过程化语言的应用.
PL/SQL语言的特点:
(1)与SQL语言紧密集成,所有的SQL语句在PL/SQL中都可以得到支持.
(2)减小网络流量,提高应用程序的运行性能.如图所示:
所以将PL/SQL程序嵌入到应用程序中,可以降低网络流量,提高应用程序的性能.
(3)模块化的程序设计功能,提高了系统可靠性.
(4)服务器端程序设计,可移植性好(任何平台的oracle数据库上);
PL/SQL程序执行过程
如下图所示:
可看出PL/SQL在执行语句时比SQL多了一层PL/SQL引擎.PL/SQL引擎主要是处理过程化语句,而把原生SQL语句还是交给SQL语句执行器去处理.
<!-- ====================================== 待更新 ======================================== -->