隐式的和显式的语句块

在 SPL 例程中,隐式的语句块从 CREATE 语句的结尾扩展到 END 语句的开头。您还可定义显式的语句块,它以 BEGIN 语句开头并以 END 语句结尾,如下图所示。

图: 显式的语句块。

BEGIN
          DEFINE distance INT;
          LET distance = 2;
          END

显式的语句块允许您定义仅在语句块内有效的变量或处理。例如,您可定义或重新定义变量,或以不同的方式处理异常,仅对于显式的语句块的作用域。

下图中的 SPL 函数有一个显式的语句块,它重新定义在隐式的块中定义的变量。

图: 重新定义在隐式的块中定义的变量的显式的语句块。

CREATE FUNCTION block_demo()
            RETURNING INT;
            DEFINE distance INT;
            LET distance = 37;
            BEGIN
            DEFINE distance INT;
            LET distance = 2;
            END
            RETURN distance;
            
            END FUNCTION;

在此示例中,隐式的语句块定义变量 distance 并赋值 37。显式的语句块定义名为 distance 的不同的变量,并赋值 2。然而,RETURN 语句返回存储在第一个 distance 变量中的值,即 37