声明变量为 PROCEDURE 类型

PROCEDURE 关键字表示在当前作用域中,变量是对 UDR 的调用。

DEFINE 语句不支持 FUNCTION 关键字。不管您在调用用户定义的过程还有用户定义的函数,都使用 PROCEDURE 关键字。

将变量声明为 PROCEDURE 类型表示在当前语句作用域中,该变量不是对内置函数的调用。例如,以下语句定义 length 作为 SPL 例程,而不是作为内置 LENGTH 函数:
DEFINE length PROCEDURE;
        ...
        LET x = length (a,b,c)

此定义在语句块的作用域中禁用内置 LENGTH 函数。如果您已使用名称 length 创建了用户定义的例程,则将使用这样的定义。

如果您使用与聚集函数(SUM 、MAX 、MIN 、AVG 、COUNT)相同的名称或使用名称 extend 创建 SPL 例程,则必须将例程名称限制为所有者名称。