常量和变量

PLOSCAR支持常量和变量的使用。需要使用的常量和变量必须在块的声明段中声明。声明后的常量或变量可以被PLOSCAR语句引用。常量和变量的作用范围服从局部性原则,即声明的常量和变量只在当前块中起作用,在子块中声明的同名常量或变量被优先认为是子块中的常量或变量。支持包的全局变量,使变量可以在包内、外被引用。

变量支持的数据类型有:一般标量类型(如INTEGER,CHAR, TIME),复合类型(如ROWTYPE, RECORD),大对象类型(如BLOB, CLOB)。变量可以有缺省值,也可以声明为非空。以下是几个变量声明的例子:

quantity INTEGER DEFAULT 32;
company_name company.name%TYPE; -- 声明为表company字段name的类型
url CONSTANT VARCHAR := 'http://mysite.com';
user_id INTEGER NOT NULL DEFAULT 20; -- 声明为非空并有缺省值
old_man friend%ROWTYPE; -- 行类型
v_string r1; -- 记录类型(r1为已经声明的Record类型)
"var_Blob" BLOB;

注解

所有声明为NOT NULL的变量必须声明一个非NULL的缺省值。

PLOSCAR可以通过赋值语句或SQL语句对变量进行赋值。

常量的声明与变量相似。只是在类型声明前增加了一个保留字CONSTANT。并且一定要为常量赋初始值。以下是声明常量的一个例子:

pi CONSTANT REAL DEFAULT 3.1416;