PL/SQL块

PL/SQL块是PL/SQL程序的最基本的单位,它由声明部分、执行部分和异常处理三部分组成。其中声明部分由declare开始,执行部分由begin开始,异常处理部分由exception开始。其中执行部分是必须,即begin..end之间必须要有执行部分。其他两部分可以根据实际情况选择。

PL/SQL块语法结构:

[DECLARE]
声明语句...
BEGIN
执行语句...
[EXCEPTION]
异常处理语句...
END;

语法解析:

1、声明部分是可选部分,由DECLARE开始,声明执行部分所需的变量或者常量。假如,没有用到变量或者常量可以省略。

2、执行部分是由BEGIN开始,END结束。是PL/SQL块语句的核心部分,所有的可执行的PL/SQL语句和操作变量都放在该部分。是必选的部分,不能省略。

3、异常部分是由EXCEPTION开始。主要处理执行部分过程中的执行语句或者赋值操作出现错误时,就会进入该部分。是PL/SQL程序的异常处理部分,不是必须的。


案例1、我们通过简单的PL/SQL语句块输出学生信息表中的某一位学生的基本信息。代码如下:

declare
xsjbxx varchar2(50);
begin
  select '姓名:' ||t.stuname || ' 学号:' || t.stuid || ' 年龄:' || t.age
   into xsjbxx
    from stuinfo t
   where t.stuname = '张三';
  dbms_output.put_line(xsjbxx);
exception
  when no_data_found  then
     dbms_output.put_line('该学生在学生信息表中找不到');
end;

结果如下:

PL/SQL块


案例2、我们通过查询一个不存在的学生信息,通过EXCEPTION进行错误信息处理。结果如下:

PL/SQL块

注释:

1、其中set serveroutput on 命令是打开COMMAND命令窗口中的输出流。

2、select ... into是PL/SQL程序中对SQL查询语句给变量赋值方法。是PL/SQL程序特有的赋值语句,该赋值语句只能要求SQL语句查询出来的值只有一个,假如多个或者一个都没有回抛出异常。

3、DBMS_OUTPUT.PUT_LINE是Oracle系统自带的包中的过程,用来做输出流打印,经常可以用来开发PL/SQL程序时做测试用。