plsql PLSQL的定义

示例

PL / SQL(过程语言/结构化查询语言)是Oracle Corporation对SQL和Oracle关系数据库的过程扩展。在Oracle数据库(版本7起),TimesTen内存数据库(版本11.2.1起)和IBM DB2(版本9.7起)中提供了PL / SQL。

PL / SQL中的基本单元称为块,它由三部分组成:声明部分,可执行部分和异常生成部分。

DECLARE
   <declarations section>
BEGIN
   <executable command(s)>
EXCEPTION
   <exception handling>
END;

声明-本节以关键字DECLARE开头。它是一个可选部分,定义了所有变量,游标,子程序以及程序中要使用的其他元素。

可执行命令-此部分包含在关键字BEGIN和END之间,是强制性部分。它由程序的可执行PL / SQL语句组成。它应该至少有一行可执行代码,这可能只是NULL命令,指示什么都不应执行。

异常处理-本节以关键字EXCEPTION开头。本节还是可选的,包含exception(s)处理程序中的错误的内容。

每个PL / SQL语句均以分号(;)结尾。可以使用BEGIN和END将PL / SQL块嵌套在其他PL / SQL块中。

在匿名块中,仅需要块的可执行部分,其他部分不是必需的。以下是简单的匿名代码示例,该代码不执行任何操作,但执行时不会报告错误。

BEGIN
    NULL;
END;
/

缺少可执行指令会导致错误,因为PL / SQL不支持空块。例如,下面的代码执行将导致错误:

BEGIN
END;
/

应用程序将引发错误:

END;
*
ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
( begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge

关键字“ END”下一行的符号“ *”;表示以该块结尾的块为空或构造错误。就像我们的示例一样,每个执行块都需要执行指令,即使它什么也不做。