PLOSCAR的结构

PLOSCAR是一种块结构的语言。PLOSCAR存储过程定义的所有文本都必须是一个块。一个块用以下方法定义:

ploscar_block ::=

一个块的语句段里的任何语句都可以是一个子块。子块可以用于逻辑分组或者把变量局部化为作用于一个比较小的语句组。

为了更好地理解PLOSCAR块结构的特性,先看一个用PLOSCAR语言编写的简单实例:

CREATE OR REPLACE PROCEDURE blockproc
AS
    foo INTEGER := 40;
BEGIN
    DBMS_OUTPUT.PUT_LINE('foo before sub-block is ' || foo); --40
    foo := 50;
    -- 创建一个子块
    DECLARE
        foo INTEGER := 60;
    BEGIN
        DBMS_OUTPUT.PUT_LINE('foo in sub-block is ' || foo); -- foo here IS 60
    END;
    DBMS_OUTPUT.PUT_LINE('foo after sub-block is ' || foo); -- foo here IS 50
END;
/
EXEC blockproc;
--执行结果为:
foo before sub-block is 40
foo in sub-block is 60
foo after sub-block is 50

过程体每个语句和声明都以分号结尾。所有关键字和标识符都不区分大小写。如果没有用双引号括起来,标识符隐含地转换为大写。

在PLOSCAR里有两种类型的注释。双破折号 -- 引出到该行行尾的单行注释。 一个/* 开始一个块注释,一直延伸到下一个*/出现。块注释不能嵌套使用,但是双破折号注释可以封装在一个块注释里面并且双破折号注释可以隐藏一个块注释分隔符/* 和 */。