变量和 SQL 函数

如果您为 SPL 变量使用与为 SQL 函数一样的标识符,则数据库服务器假定该表达式的每一实例都是变量,并不允许使用该 SQL 函数。在定义该变量的代码块内,您不可使用该 SQL 函数。下图中的示例展示在其中定义名为 user 的变量的 SPL 过程内的块。此定义不允许在 BEGIN END 块中使用 USER 函数。

图: 不允许在 BEGIN END 块中使用 USER 函数的过程。

CREATE PROCEDURE user_test()
            DEFINE name CHAR(10);
            DEFINE name2 CHAR(10);
            LET name = user; -- the SQL function
            
            BEGIN
            DEFINE user CHAR(15); -- disables user function
            LET user = 'Miller';
            LET name = user; -- assigns 'Miller' to variable name
            END
            . . .
            LET name2 = user; -- SQL function again