Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程

上传人:E**** 文档编号:89425795 上传时间:2019-05-25 格式:PPT 页数:52 大小:356KB
返回 下载 相关 举报
Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程_第1页
第1页 / 共52页
Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程_第2页
第2页 / 共52页
Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程_第3页
第3页 / 共52页
Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程_第4页
第4页 / 共52页
Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程》由会员分享,可在线阅读,更多相关《Oracle数据库应用与开发案例教程-电子教案-王红 08.第八章 PLSQL编程(52页珍藏版)》请在金锄头文库上搜索。

1、2019/5/25,1,Oracle数据库应用 与开发案例教程,主编 王红 中国水利水电出版社,2019/5/25,2,Oracle数据库应用 与开发案例教程,第八章 PL/SQL编程,2019/5/25,Oracle数据库应用与开发案例教程,3,第八章 PL/SQL编程,8.1 PL/SQL结构 8.2 控制结构 8.3 游标 8.4 异常处理 8.5 PL/SQL子程序 8.6程序包 8.7 触发器,2019/5/25,Oracle数据库应用与开发案例教程,4,8.1 PL/SQL结构,PL/SQL语言 PL/SQL的全称是Procedural Language/Structured Qu

2、ery Language,是过程语言与SQL语言结合而成的编程语言。 PL/SQL语言有字符集,运算符,可以定义变量和常量,有赋值语句和表达式,可以使用条件和循环等控制结构,可以捕获异常。,2019/5/25,Oracle数据库应用与开发案例教程,5,8.1 PL/SQL结构,PL/SQL块结构 PL/SQL程序的基本单元是程序块,一个PL/SQL 程序由一个或多个程序块组成的。 PL/SQL程序块分为三部分:声明部分、可执行部分和异常处理部分: DECLARE /* 声明部分:用于声明PL/SQL程序库中需要使用的变量*/ BEGIN /*可执行部分:PL/SQL块中的可执行语句*/ EXC

3、EPTION /*异常处理部分:用于处理PL/SQL块运行过程中可能出现的各种错误*/ END; /,2019/5/25,Oracle数据库应用与开发案例教程,6,8.1 PL/SQL结构,PL/SQL块的分类 1)匿名块 匿名块是指没有特定名称的PL/SQL块,它既可以内嵌到相关应用程序中使用,也可以在交互式环境中直接使用。 2)命名块 命名块是指具有特定名称标识的PL/SQL块,命名块与匿名块非常类似,但在PL/SQL块前需要使用加以标记。命名块通常用于程序嵌套当中,以区分多级嵌套层次关系。 3)子程序 子程序包括过程、函数和包。当开发PL/SQL子程序时,既可以开发客户端的子程序,也可以

4、开发服务器端的子程序。客户端的子程序主要用在Developer中,而服务器端子程序可以用在任何应用程序中。 4)触发器 触发器是指隐含执行的存储过程。当定义触发器时,必须要指定触发事件以及触发操作,常用的触发事件包括INSERT,UPDAE和DELETE语句,而触发操作实际是一个PL/SQL块。,2019/5/25,Oracle数据库应用与开发案例教程,7,8.1 PL/SQL结构,PL/SQL程序注释 1)双减号-:表示单行注释符。 2)/*/:表示添加一行或多行注释符。,2019/5/25,Oracle数据库应用与开发案例教程,8,8.1 PL/SQL结构,变量 1)声明变量 声明变量的语

5、句格式如下: Variable_Name CONSTANT databyte NOT NUL :=DEFAULT EXPRESSION 2)给变量赋值 zichan_id zichanmingxi.zcid%TYPE:=20; zichan_id zichanmingxi.ZCID%TYPE:=,2019/5/25,Oracle数据库应用与开发案例教程,9,8.1 PL/SQL结构,数据类型 1. 标量类型 当定义标量类型变量时,必须要指定该变量的标量数据类型。标量数据类型包括数字、字符、布尔值和日期时间值等4类数据类型,如表8.1所示。 2. 复合类型 复合类型变量是指用于存放多个值的变量。

6、PL/SQL的复合数据类型包括PL/SQL记录、PL/SQL表、嵌套表以及VARRAY可变数组。,2019/5/25,Oracle数据库应用与开发案例教程,10,8.1 PL/SQL结构,数据类型 2. 复合类型:%TYPE和%ROWTYPE %TYPE的用法:将数据库表中的某个字段或PL/SQL中已经声明过的变量名作为参照,使用%TYPE属性来声明一个变量。其语法形式为: variable_name table_name.column_name%TYPE NOT NULL := | DEFAULT value 【例题8-1】显示资产编号为100的资产名称信息。,2019/5/25,Oracl

7、e数据库应用与开发案例教程,11,8.1 PL/SQL结构,数据类型 2. 复合类型:%TYPE和%ROWTYPE %ROWTYPE的用法:%ROWTYPE将定义一个由数据库表的字段集合构成的记录类型的变量,该变量可以用来存储表中的一行数据。%ROWTYPE类型变量的域与它所参照表的字段名称、个数、数据类型及长度完全相同。 %ROWTYPE定义变量的语法形式为: variable_name table_name%ROWTYPE; 【例题8-2】显示指定编号资产的资产编号和名称。,2019/5/25,Oracle数据库应用与开发案例教程,12,8.1 PL/SQL结构,数据类型 2. 复合类型:

8、PL/SQL记录类型 PL/SQL记录类似于高级语言中的结构体类型,每个PL/SQL记录一般都包含多个成员。当引用记录成员时,必须要加记录变量作为前缀,即使用“记录变量.记录成员”的形式。 PL/SQL记录类型的声明语法: TYPE record_name IS RECORD( field_name1 data_type1, field_name2 data_type2, field_namen1 data_typen);,2019/5/25,Oracle数据库应用与开发案例教程,13,8.1 PL/SQL结构,数据类型 2. 复合类型:PL/SQL记录类型 语法说明: 1)record_na

9、me:记录类型名称。 2)IS RECORD:表示创建的是记录类型。 3)field_name:表示记录类型中的字段名称。 定义记录类型变量的语法: variable_name record_name; 【例题8-3】显示指定编号资产的下列信息:资产名称、资产部门、资产状态和使用年限等。,2019/5/25,Oracle数据库应用与开发案例教程,14,8.1 PL/SQL结构,数据类型 2. 复合类型:PL/SQL表类型 记录类型的变量一次只能保存一行数据。如果用记录类型变量存储PL/SQL块的SELECT语句返回的多行数据,就需要使用循环结构和游标技术。 声明PL/SQL表类型对象语法: T

10、YPE table_name IS TABLE OF data_type NOT NULL INDEX BY BINARY_INTEGER; 说明: 1)table_name:创建的表类型名称。 2)IS TABLE:表示创建的是表类型。 3)data_type:PL/SQL数据类型。 4)INDEX BY BINARY_INTEGER:表示由系统创建一个主键索引,来引用表类型变量中的特定行。,2019/5/25,Oracle数据库应用与开发案例教程,15,8.1 PL/SQL结构,数据类型 2. 复合类型:PL/SQL表类型 声明PL/SQL表类型的变量 variable_name tabl

11、e_name; 【例题8-4】查看用户刘金山所在的部门。,2019/5/25,Oracle数据库应用与开发案例教程,16,8.1 PL/SQL结构,数据类型 2. 复合类型:参照类型 参照类型用于存放数值指针,可以通过参照类型的变量来共享相同对象。 1)游标变量 当PL/SQL中的SELECT语句需要返回多行查询结果时,就需要使用游标变量。游标变量存放着指向内存地址的指针,这个指针指向多行查询结果集的当前行。 2)对象类型变量 当编写对象类型应用时,可以使用REF引用对象类型来共享相同对象,REF实际是指向对象实例的指针。,2019/5/25,Oracle数据库应用与开发案例教程,17,8.1

12、 PL/SQL结构,数据类型 2. 复合类型:LOB类型 LOB类型即大对象类型,用来存储存储文本或二进制文件、图像或者音频信息等大量数据(一个LOB字段可存储多达4GB的数据)。,2019/5/25,Oracle数据库应用与开发案例教程,18,8.2 控制结构,顺序控制语句 顺序控制语句是程序设计中最基本的一种控制结构。在PL/SQL中,顺序控制语句按照其在程序中的先后顺序依次执行,直到程序结束为止。,2019/5/25,Oracle数据库应用与开发案例教程,19,8.2 控制结构,条件语句:IF-THEN语句 语法格式: IF-THEN语句是条件语句最简单的形式,用于执行单一条件判断: I

13、F condition THEN sequence_of_statements END IF; 说明: 该语句只有在条件condition为真的时候才会执行THEN后面的语句序列sequence_of_statements。如果条件值为假或是空,则跳过THEN和END IF之间的语句序列,直接执行END IF后面的语句。 【例题8-5】编写PL/SQL过程:如果给定资产的资产原值大于5000,则输出提示为重要资产。,2019/5/25,Oracle数据库应用与开发案例教程,20,8.2 控制结构,条件语句:IF-THEN-ELSE语句 第二种形式的IF语句使用关键字ELSE添加了一个额外的处理

14、选项,语句执行时会根据条件来选择两种可能性。其语句格式如下: IF condition THEN sequence_of_statements1 ELSE sequence_of_statements2 END IF; 说明: 当条件condition为真时则第一组语句序列sequence_of_statements1会被执行;当条件为假或空时,ELSE子句中的语句序列sequence_of_statements2就会被执行。 【例题8-6】编写PL/SQL过程,输入资产id号,查询给定zcid号的资产的资产名称和资产原值,并判定根据资产原值判定此资产是重要资产还是普通资产。,2019/5/2

15、5,Oracle数据库应用与开发案例教程,21,8.2 控制结构,条件语句:IF-THEN-ELSIF语句 IF-THEN-ELSIF属于多重条件分支结构,用来实现多个条件的选择。IF-THEN-ELSIF语句的语句格式如下: IF condition1 THEN sequence_of_statements1 ELSIF condition2 THEN sequence_of_statements2 ELSE sequence_of_statements3 END IF; 说明: 在IF-THEN-ELSIF结构中,计算结果为TRUE的第一个condition表达式对应的语句序列将被执行。

16、【例题8-7】编写PL/SQL过程,根据输入的部门编号输出相应的部门名称。,2019/5/25,Oracle数据库应用与开发案例教程,22,8.2 控制结构,条件语句:CASE语句 CASE语句用于处理多重分支语句结构,根据一定条件从多个语句序列中选出一个符合条件的语句来执行。与IF语句不同,CASE语句会使用一个选择器,而不是多个布尔表达式。 【例题8-8】利用CASE语句改写例题8-7的例子。 【例题8-9】利用搜寻式CASE语句改写例题8-7的例子。,2019/5/25,Oracle数据库应用与开发案例教程,23,8.2 控制结构,循环语句:LOOP循环语句 循环语句最简单的形式就是把循环语句序列放到关键字LOOP和END LOOP之间,语法如下: LOOP sequence_of_statements; END LOOP; 说明:在每一次循环中,程序将顺序执行循环体中的语句序列sequence_of_statements,然后返回循环顶部重复这一过程,直至满足条件退出循环。LOOP循环语句中可以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号