PL/SQL程序单元一般讲代码都组织成block。一个没有任何命名的block叫做匿名block。匿名block是在PL/SQL里面是一个最简单的单元。为什么叫做匿名block,是因为在数据库中并没有对该block进行保存。这些匿名block都是一次性的,用完就关了,当然这都是在一些特定的情况下使用,比如说是创建测试单元。下面是一个简单的匿名block结构语法:
[
DECLARE
]
Declaration statements;
BEGIN
Execution statements;
[EXCEPTION]
Exception handling statements;
END
;
下面就对block的结构做一些详细的介绍:
匿名block主要有三个主要的部分:声明,执行,和异常处理。只有执行部分是有需求的,其他都是选择项。
1.声明部分:主要是定义一些数据类型,结构和变量。当然,你也可以定义一个变量:命名,数据类型和初始值。可以定义,可以声明,自己选择;
2.执行部分:这个是block中必不可少的部分,至少得有一个statement。执行部分就是执行代码。可以使用过程变成语言,也可以是sql语句,各有需求;
3.异常处理部分:前面必须加上关键字EXCEPTION。处理部分就是你的处理代码,catch or handle。
注意:在最后一行有一个单划线,这是通知SQL*Plus,你的block已经完了,下面看你了。
PL/SQL block的结构实例:
BEGIN
NULL
;
END
;
如果你执行完上面没有任何功能的block之后,SQL*Plus将会通知“PL/SQL procedure successfully completed.”
下面是一个大家都懂的block
SET SERVEROUTPUT ON SIZE 1000000
BEGIN
DBMS_OUTPUT.PUT_LINE('HELLO PL/SQL');
END
/
注意到,这里好像和之前说的不太一样
第一行的命令并不属于匿名block。它只是通知SQL*Plus ,在执行完PL/SQL 代码后,将数据库结果输出到屏幕上。
SQL*Plus is Oracle database client tool that executes PL/SQL statements and outputs the query’s results. SQL*Plus provides administrators and programmer with command-interface to work with Oracle database. SQL*Plus is commonly referred as SQLPLUS.
当然针对以上的例子,你也可以使用异常处理部分来执行代码。