如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
PL/SQL编程本章学习目标本章将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。本章内容安排4.1PL/SQL简介1.PL/SQL的优点(1)PL/SQL是一种高性能的基于事务处理的语言,能运行在任何Oracle环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。(2)PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有Oracle对象类型。(3)PL/SQL块可以被命名和存储在Oracle服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。(4)可以使用Oracle数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。(5)PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何Oracle能够运行的操作系统都是非常便利的。2.PL/SQL的缺点对于SQL,Oracle必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。服务器端PL/SQL不需要显式的安装或许可。它是Oracle9i数据库的隐式部分,此处有相应的文档。PL/SQL编译器和解释器也嵌入到OracleDeveloper中,为开发者在客户端和服务器端提供一致的、可利用的开发模型。4.2.2常量与变量1、条件结构1)If条件判断逻辑结构If条件判断逻辑结构有三种表达方式。①表达式一:ifconditionthenStatementendif该表达式的功能为:若条件为真,执行then后的语句;否则,跳出条件语句执行endif后的语句。②表达式二:ifconditionthenStatements_1elseStatements_2endif该表达式的功能为:如果条件为真执行then后的语句,否则执行else后的语句。③表达式三:ifcondition1thenStatements_1elseifcondition2thenStatements_2elseStatements_3endif该表达式的功能为:如果if后的条件成立,执行then后面的语句,否则判断elseif后面的条件,条件成立执行第二个then后面的语句,否则执行else后的语句。这是条件语句嵌套。IF可以嵌套,可以在IF或IF..ELSE语句中使用IF或IF…ELSE语句。2)Case表达式Case语句的基本格式如下:Case变量WHEN表达式1then值1WHEN表达式2then值2WHEN表达式3then值3WHEN表达式4then值4ELSE值5END;Case语句的功能:首先设定变量的值作为条件,然后顺序检查表达式,一旦从中找到与条件匹配的表达式值,就停止case语句的处理。2、循环控制(1)loop…exit…end循环控制语句LOOP循环语句是其中最基本的一种。LOOP语句的格式如下:LOOPstatementsENDLOOP;这种循环语句是没有终止的,如果不人为控制的话,其中的statements将会无限地执行。一般可以通过加入EXIT语句来终结该循环。(2)WHILE…..LOOP循环控制语句WHILE…..LOOP有一个条件与循环相联系,如果条件为TRUE,则执行循环体内的语句,如果结果为FALSE,则结束循环。(3)FOR..LOOP循环控制语句FOR..LOOP循环控制语句的格式如下:FORcounterIN[REVERSE]start_range..end_rangeLOOPstatements;ENDLOOP;LOOP和WHILE循环的循环次数都是不确定的,FOR循环的循环次数是固定的,counter是一个隐式声明的变量,初始值是start_range,第二个值是start_range+1,直到end_range,如果start_range等于end_range,那么循环将执行一次。如果使用了REVERSE关键字,那么范围将是一个降序。3、GOTO语句GOTO语句的格式如下:GOTOLABEL;执行GOTO语句时,控制会立即转到由标签标记的语句。PL/SQL中对GOTO语句有一些限制,对于块、循环、IF语句而言,从外层跳转到内层是非法的。4、嵌套程序块的内部可以有另一个程序块这种情况称为嵌套。嵌套要注意的是变量,定义在最外部程序块中的变量可以在所有子块中使用,如果在子块中定义了与外部程序块变量相同的变量名