声明全局变量

全局变量将它的值存储在内存中,其他 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

图: 全局变量缺省值。

EXECUTE FUNCTION func2();
            EXECUTE FUNCTION func1();

要了解更多信息,请参阅 执行例程