- 2
- 0
- 约1.64万字
- 约 15页
- 2020-02-26 发布于陕西
- 举报
PAGE 9
第四章 PL/SQL、过程函数包、触发器
作为4GL的SQL是一种数据存取语言,它从来描述应该做什么,而不描述如何去做。但有时,我们却需要偏重过程和算法的3GL,为建立一个数据库应用,必须使用一种过程化语言来包含SQL语句与oracle数据库交互。PL/SQL——正是将SQL的强大灵活与过程性结构融为一体的语言。
§4.1 PL/SQL程序编写:
作为建立在Oracle产品中的过程化语言,与其他3GL语言一样,PL/SQL具有一些语句,允许定义变量与常量、控制程序流、赋值与管理数据等。下面我们首先说明其程序结构。
§4.1.1 块结构
PL/SQL的基本单位是“块”。所有的PL/SQL程序都有块构成,一个块完成一个特定的工作任务。一个PL/SQL块包括三个部分:声明、主程序体与例外处理:
DECLARE --变量声明
err_ID EXCEPTION;
v_id INTEGER=1;
v_Name VARCHAR2(10)=’MAN’;
BEGIN --主程序体
--执行修改名称处理
update SEX set Name=v_NAME where id=v_id;
if SQL%NOTFOUND then
raise err_id;
end if;
EXCEPTION --例外处理
When err_id THEN Raise_application_error (-20000,’Invalid ID’);
END;
■在PL/SQL块的声明部分中定义所有的变量、常量与例外等等,它们可以在块的所有其他部分使用。
■主程序体含有块的执行语句。换句话说,程序体是PL/SQL定义它的功能的地方。
■例外处理部分含有块的例外处理(错误处理程序)。当块体中的一条语句产生一个例外时(检测出一个错误),它将程序控制转到例外部分中相应的例外处理,进行进一步处理。
PL/SQL程序不只局限在一个块中,为进一步组织子任务,一个PL/SQL程序可以在块体和块的例外处理部分中嵌套块。通常,块声明对于块体与例外处理部分中的所有事务是可见的,包括所有的嵌套子块。
§4.1.2 程序注释
所有的PL/SQL程序块都可以含有注释,即程序声明与功能的文档。注释使特定的程序与代码部分的目的更为明确和清晰。
PL/SQL支持两种风格的注释,如下面的代码段所示:
--变量声明
/*变量声明*/
§4.1.3 程序声明
PL/SQL程序中的块可以声明许多类型的结构,下面简要介绍PL/SQL怎样声明下面的对象:变量与常量、游标与游标变量。
变量与常量
PL/SQL程序的声明部分可以含有变量与常量声明。程序变量或常量可以使用任何Oracle或ANSI/ISO标准的数据类型(见第2章)。例如,下面的程序段使用ANSI数据类型INTEGER声明了一个变量与一个常量。
DECLARE
Emp_id INTEGER;
Standard_commission CONSTANT INTEGER:=500;
当程序声明一个变量时,程序可以使用缺省值或初始值将其初始化,例如:
DECLARE
Counter INTEGER:=0;--example of intial value
Emp_commission INTEGER DEFAULT0;--example of default value
在支持Oracle与ANSI/ISO标准数据类型的同时,PL/SQL还支持其他一些简单数据类型的常量与变量声明,表4-1总结列出一些附加的PL/SQL标量数据类型及相关的子类型——子类型是它的基本类型的限制版本。
数据类型
子类
描述
BINARY_INTEGER
NATURAL、NATURALN、POSITIVE、POSITIVEN、SIGNTYPE
存储有符号整数,使用库算术,NATURAL与NATURALN只存储非负整数,后者不允许存储0;
POSITIVE与POSITIVEN只存储正数,后者不允许存储0。SIGNTYPE只存储-1、0与1
NUMBER(精度,比例)
DEC、DECIMAL、DOUBLE PRECISION、FLOAT(精度)、INTEGER、INT、NUMERIC、REAL、SMALLINT
存储定点数或浮点数,使用数学库
PLS_INTEGER
存储有符号整数,使用机器算法以进行快速计算
CHAR(长度)
CHARACTER(长度)
存储定长字符中,最大长度为32767字节;然而,数据库中CHAR最长为2000字节
VARCHAR2(长度)
VARCHAR(长度)、STRING
存储变长字符串,最大长度为32767字节;然而,数据库中CHAR最长为4000字节
DATE
存储与时闻相关购
原创力文档

文档评论(0)