1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
PL_SQL手册

第一章 PL/SQL 一览 一、理解PL/SQL 的主要特性 了解PL/SQL 最好的方法就是从简单的实例入手。下面的程序是用于处理一个网球拍订单的。首先声明一 个NUMBER 类型的变量来存放现有的球拍数量。然后从数据表inventory 中把球拍的数量检索出来。如 果数量大于零,程序就会更新inventory 表,并向purchase_record 表插入一条购买记录,如果数量不 大于零,程序会向purchase_record 表插入一条脱销(out-of-stock)记录。 DECLARE qty_on_hand NUMBER(5); BEGIN SELECT quantity INTO qty_on_hand FROM inventory WHERE product = TENNIS RACKET FOR UPDATE OF quantity; IF qty_on_hand 0 THEN -- check quantity UPDATE inventory SET quantity = quantity - 1 WHERE product = TENNIS RACKET; INSERT INTO purchase_record VALUES (Tennis racket purchased, SYSDATE); ELSE INSERT INTO purchase_record VALUES (Out of tennis rackets, SYSDATE); END IF; COMMIT; END; 在PL/SQL 中,可以使用SQL 语句来操作Oracle 中的数据,并使用流程控制语句来处理数据。我们还可 以声明常量和变量,定义函数和过程并捕获运行时错误。因此,PL/SQL 是一种把SQL 对数据操作的优势 和过程化语言数据处理优势结合起来的语言。 1、块结构 PL/SQL 是一种块结构的语言,它的基本组成单元是一些逻辑块,而这些块又能嵌套任意数量子块。通常, 每一个逻辑块都承担一部分工作任务, 这种将问题分而治之 的方法称为逐 PL/SQL (divide-and-conquer) 步求精(stepwise refinement)。块能够让我们把逻辑相关的声明和语句组织起来,声明的内容对于块来 说是本地的,在块结构退出时它们会自动销毁。 如下图所示,一个块分为三个部分:声明,处理,异常控制。其中,只有处理部分是必需的。首先程序处 理声明部分,然后被声明的内容就可以在执行部分使用,当异常发生时,就可以在异常控制部分中对抛出 的异常进行捕捉、处理。 我们还可以在处理部分和异常控制部分嵌套子块,但声明部分中不可以嵌套子块。不过我们仍可以在声明 部分定义本地的子程序,但这样的子程序只能由定义它们的块来调用。 2、变量与常量 PL/SQL 允许我们声明常量和变量,但是常量和变量必须是在声明后才可以使用,向前引用(forward reference)是不允许的。 • 变量声明 变量可以是任何SQL 类型,如CHAR,DATE 或NUMBER 等,也可以是PL/SQL 类型,BOOLEAN 或 BINARY_INTEGER 等。声明方法如下: part_no NUMBER(4); in_stock BOOLEAN; 我们还可以用 、 和 这些复合类型来声明嵌套表、变长数组 缩写为 和 TABLE VARRAY RECORD ( varray) 记录。 • 变量赋值 我们可以用三种方式为变量赋值,第一种,直接使用赋值操作符:=: tax := price * tax_rate; valid_id := FALSE; bonus := current_salary * 0.10; wages := gross_pay(emp_id, st_hrs, ot_hrs ) - deductions; 第二种,利

文档评论(0)

牛X文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档