DEFINE

使用 DEFINE 语句声明 SPL 例程使用的本地变量,或声明可由几个 SPL 例程共享的全局变量。

语法

元素 描述 限制 语法
column 列名 必须已经存在于 tableview 标识符
data_type SPL_var 的类型 请参阅声明全局变量 数据类型
distinct_type Distinct 类型 必须已经在数据库中定义 数据类型
opaque_type Opaque 类型 必须已经在数据库中定义 数据类型
SPL_var 新 SPL 变量 在语句块中必须是唯一的 标识符
synonym, table, view 表、视图或同义词的名称 当发出 DEFINE 时它所指向的同义词和表或视图必须存在 标识符

用法

DEFINE 语句不是可执行语句。DEFINE 语句必须出现在例程头之后,任何其它语句之前。如果声明一个局部变量(通过使用不带 GLOBAL 关键字的 DEFINE),则它的引用作用域是定义了此局部变量的语句块。您可以在该语句块中使用该变量。在语句块之外具有不同定义的另一个变量可有相同的名称。

具有 GLOBAL 关键字的变量在作用域中是全局的并且在语句块之外且对于其它 SPL 例程是可用的。全局变量可以是除 BIGSERIAL 、BLOB 、BYTE 、CLOB 、SERIAL 、SERIAL8 或 TEXT 之外的任何内置数据类型。本地变量可以是除 BIGSERIAL 、BYTE 、SERIAL 、SERIAL8 或 TEXT 之外的任何内置数据类型。如果 columnBIGSERIAL 、SERIAL 或 SERIAL8 数据类型,则声明 BIGINT 、INT 或 INT8 变量(分别地)以存储其值。

将 SQL 关键字的名称或其它数据库对象的标识符声明为 SPL 变量会在某些上下文中产生错误或意外结果。有关涉及 SPL 变量的名称冲突的一些潜在问题的讨论,请参阅下面的相关概念。
1 请参阅 缺省值
2 请参阅 复杂数据类型的子集