全局变量将它的值存储在内存中,
其他 SPL 例程可用,
由相同的用户会话运行在同一数据
库上。全局变量有下列特征:
它需要缺省值。
可在任何 SPL 例程中使用它,虽然必须在使用它的每一例程中定义它。
它将它的值从一个 SPL 例程带到另一个,直到会话结束为止。
限制: 您不可将集合变量定义为全局变量。
下图展示分享一个全局变量的两个 SPL 函数。
图: 分享一个全局变量的两个 SPL 函数。
CREATE FUNCTION func1() RETURNING INT;
DEFINE GLOBAL gvar INT DEFAULT 2;
LET gvar = gvar + 1;
RETURN gvar;
END FUNCTION;
CREATE FUNCTION func2() RETURNING INT;
DEFINE GLOBAL gvar INT DEFAULT 5;
LET gvar = gvar + 1;
RETURN gvar;
END FUNCTION;
虽然您必须定义带有缺省值的全局变量,但仅在您首次使用它时,将变量设置为缺省值。
如果您以给定的顺序在下图中执行这两个函数,则 gvar的值将为 4。
图: 全局变量缺省值。
EXECUTE FUNCTION func1();
EXECUTE FUNCTION func2();
但是,如果您以相反的顺序执行函数,如下图所示,则 gvar 的值将为 7。
GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 283 -
图: 全局变量缺省值。
EXECUTE FUNCTION func2();
EXECUTE FUNCTION func1();
要了解更多信息,请参阅 执行例程。