Oracle数据库编程经典300例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

实例007 创建PL/SQL块

【实例描述】

Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询语言SQL与Oracle自身过程控制为一体的强大语言,PL/SQL不但支持更多的数据类型,拥有自身的变量声明、赋值语句,而且还有条件、循环等流程控制语句。过程控制结构与SQL数据处理能力无缝地结合形成了强大的编程语言,可以创建过程和函数及程序包。

本实例创建一个简单的PL/SQL块,计算一个长为5,宽为4的矩形面积。创建完成后将该块在SQL*Plus中运行,其运行结果如图1-25所示。

图1-25 创建PL/SQL块计算矩形面积

【实现过程】

(1)打开SQL*Plus工具。执行【开始】|【运行】命令,在【运行】对话框中输入“sqlplusw”命令,打开SQL*Plus,在登录框中输入“system/oracle”(用户名/口令),如图1-26所示。此处口令“oracle”为安装Oracle时设置的,读者需将其改为自身为其设置的口令。

图1-26 登录SQL*Plus

(2)编写PL/SQL代码。连接到Oracle SQL*Plus后,在“SQL>”字符串后输入PL/SQL代码,如下所示:

    SQL>  DECLARE
      2  LEN NUMBER:=5;
      3  WIDTH NUMBER:=4;
      4  AREA NUMBER;
      5  BEGIN                         ------执行部分开始
      6  AREA:=LEN*WIDTH;
      7  DBMS_OUTPUT.PUT_LINE(AREA);   ------输出AREA的值到SQL*Plus
      8  END;
      9  /

【范例解析】

简单地说,PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器,PL/SQL引擎分析收到PL/SQL语句块中的内容,把其中的过程控制语句由PL/SQL引擎自身去执行,把PL/SQL块中的SQL语句交给服务器的SQL语句执行器执行。一个PL/SQL程序包含了一个或者多个逻辑块,逻辑块中可以声明变量,变量在使用之前必须先声明。除了正常的执行程序外,PL/SQL还提供了专门的异常处理部分进行异常处理。每个逻辑块分为三个部分,语法是:

    [DECLARE
        --declaration statements]
    BEGIN
        --executable statements
    [EXCEPTION
        --exception statements]
    END;

其中,DECLARE部分为声明部分,它包含了变量和常量的定义,该部分由关键字DECLARE开始,如果不声明变量或者常量,可以省略这部分;由关键字BEGIN开始,关键字END结尾的部分为执行部分,所有的可执行PL/SQL语句都放在这一部分,该部分执行命令并操作变量;由EXCEPTION关键字开始的部分为异常处理部分,它也是可选的。

读者可以看出,PL/SQL事实上是一种编程语言,与Java和C#一样。除了有自身独有的数据类型、变量声明和赋值及流程控制语句外,PL/SQL还有自身的语言特性。

● PL/SQL对大小写不敏感,本书中约定关键字全部大些,其余的部分小写。

● PL/SQL块中的每一条语句都必须以分号结束,SQL语句可以是多行的,但分号表示该语句结束。一行中可以有多条SQL语句,他们之间以分号分隔,但是不推荐一行中写多条语句。

● PL/SQL块中的END关键字后面用分号结尾。

● PL/SQL块和PL/SQL语句在SQL*Plus中以符号“/”执行。

注意:在SQL*Plus中运行PL/SQL块前,如果需要将执行结果直接输出,首先需要执行“set serveroutput on”命令,再用dbms_output.put_line()语句输出变量值。