Oracle数据库管理系统第七讲PL/SQL基础第一页,共四十五页。课程目标运行PL/SQL程序SQL与PL/SQLPL/SQL内置包123PL/SQL块结构和组成元素4第七讲pl/sql基础第二页,共四十五页。一、概述•Oracle5以前是没有PL/SQL这个产品的。•后来由于数据库的发展和软件技术的发展。出现了第4代开发工具,称为4GL。4GL的功能是在处理界面上有优势,但在数据库的数据处理上仍不是它们的特长。鉴于数据库在SQL方面的优势,Oracle公司在Oracle6版本以后开发了PL/SQL产品。•Oracle在后来的版本中增强了PL/SQL的功能。包括现在的许多系统的处理几乎是由PL/SQL写成,而不是用C来编写。第七讲pl/sql基础第三页,共四十五页。一、概述1什么是PL/SQL2PL/SQL的好处3PL/SQL可用的SQL语句第七讲pl/sql基础第四页,共四十五页。1.什么是PL/SQL•PL/SQL是ProcedureLanguage&StructuredQueryLanguage的缩写。Oracle的SQL是支持ANSI(AmericannationalStandardsInstitute)和ISO92(InternationalStandardsOrganization)标准的产品。PL/SQL是对SQL语言存储过程的扩展。第七讲pl/sql基础第五页,共四十五页。1.什么是PL/SQL•目前的PL/SQL包括两部分:一部分是数据库引擎部分(数据库PL/SQL);另一部分是可嵌入到许多产品(如C语言,JAVA语言等)工具中的独立引擎(工具PL/SQL)。两者的编程非常相似。都具有编程结构、语法和逻辑机制。第七讲pl/sql基础第六页,共四十五页。2PL/SQL的好处提高应用程序的运行性能模块化的设计思想减少网络传输量提高安全性第七讲pl/sql基础第七页,共四十五页。3PL/SQL可用的SQL语句在PL/SQL中可以使用的SQL语句有:•INSERT•UPDATE•DELETE•SELECTINTO•COMMIT•ROLLBACK•SAVEPOINT提示:在PL/SQL中只能用SQL语句中的DML部分,不能用DDL部分,如果要在PL/SQL中使用DDL(如Createtable等)的话,只能以动态的方式来使用。第七讲pl/sql基础第八页,共四十五页。3PL/SQL可用的SQL语句1.Oracle的PL/SQL组件在对PL/SQL程序进行解释时,同时对其所使用的表名、列名及数据类型进行检查。2.PL/SQL可以在SQL*PLUS中使用。3.PL/SQL可以在高级语言中使用。4.PL/SQL可以在Oracle的开发工具中使用。5.其它开发工具也可以调用PL/SQL编写的过程和函数,如PowerBuilder等都可以调用服务器端的PL/SQL过程。第七讲pl/sql基础第九页,共四十五页。三、运行PL/SQL程序•PL/SQL程序的运行是通过Oracle中的一个引擎来进行的。这个引擎可能在Oracle的服务器端,也可能在Oracle应用开发的客户端。引擎执行PL/SQL中的过程性语句,然后将SQL语句发送给数据库服务器来执行。再将结果返回给执行端。第七讲pl/sql基础第十页,共四十五页。三、运行PL/SQL程序比如已经用下面的脚本创建了一个存储过程:createprocedurefundstat1(start_year_monthinvarchar2,end_year_monthinvarchar2)isyear_month0varchar2(7);--年月...begin......end;第七讲pl/sql基础第十一页,共四十五页。三、运行PL/SQL程序在SQL*PLUS下运行可以用下面命令启动运行:SQL>executefunstat1(‘2001.01’,’2001.02’);类似地,在Powerbuilder和Developer/2000下可以用下面语句来启动运行:EXECUTEfundstat1(‘2001.01’,’2001.03’);或date1:=‘2001.01’;date2:=‘2001.03’;EXECUTEfundstat1(:date1,:date2);第七讲pl/sql基础第十二页,共四十五页。四、PL/SQL内置包Oracle系统本身提供了一套功能强大的内置包。这些系统包都以DBMS_开头进行命名。用这些包可以完成许多Oracle管理功能。下面是一些常用包的简单说明:•DBMS_ALERT数据库报警,允许会话间通信;•DBMS_JOB任务调度服务;•DBMS_LOB大对象操作用的包;•DBMS_PIPE数据库管道用的包;•DBMS_SQL动态SQL所用的包;•UTL_FILE文本文件I/O所用的包。第七讲pl/sql基础第十三页,共四十五页。五、PL/SQL块结构和组成元素•PL/SQL结构•PL/SQL块•标识符•PL/SQL变量类型•运算符和表达式•变量赋值•变量作用范围以可见性•注释•简单例子第七讲pl/sql基础第十四页,共四十五页。五、PL/SQL块结构和组成元素PL/SQL结构•PL/SQL块中可以包含子块;•子块可以位于PL/SQL中的...