第4章 PL-SQL与函数过程包.docVIP

  • 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)

1亿VIP精品文档

相关文档