声明 PROCEDURE 类型变量

在 SPL 例程中,您可定义类型 PROCEDURE 的变量,并将现有的 SPL 例程或外部例程的名称分配给该变量。定义 PROCEDURE 类型的变量指示该变量是对用户定义的例程的调用,而不是对同一名称的内建例程的调用。

例如,下图中的语句定义 length 为一个 SPL 过程或 SPL 函数,不作为内建的 LENGTH 函数。

图: 定义 length 作为 SPL 过程。

DEFINE length PROCEDURE;
          LET x = length( a,b,c );

此定义在该语句块的作用域内禁用内建的 LENGTH 函数。如果您已以名称 LENGTH 创建了 SPL 或外部例程,则您可使用这样的定义。

由于 GBase 8s 支持例程重载,因此,您可以相同的名称定义多个 SPL 例程或外部例程。如果您从 SPL 例程调用任何例程,则 GBase 8s 基于指定的参数和例程确定规则,确定使用哪个例程。要获取关于例程重载和例程确定的信息,请参阅 GBase 8s 用户定义的例程和数据类型开发者指南

提示: 如果您以相同的名称创建 SPL 例程作为聚集函数(SUMMAXMINAVGCOUNT)或使用名称 extend,则您必须以所有者名称来限定该例程。