重载函数名

因为 GBase 8s 支持例程重载,所有您可以用同一名称定义多个函数,但有不同的参数列表。您可能希望在以下情况中重载函数:

有关唯一标识每个用户定义函数的例程特征符的简短描述,请参阅例程重载以及例程签名

示例

重载函数通过名称和输入参数列表来唯一标识。除了提供一个长的唯一标识符,还可以通过特定名称从而在之后使用它。以下示例显示了一个重载函数,它的标识符是 getArea,具有特定名称 getSquareAreagetRectangleArea
CREATE FUNCTION getArea
          (i INT DEFAULT 0)
          RETURNING INT SPECIFIC getSquareArea;
          DEFINE j INT;
          LET j = i * i;
          RETURN j;
          END FUNCTION;
          
          CREATE FUNCTION getArea 
          (i INT DEFAULT 0, j INT DEFAULT 0) 
          RETURNING INT SPECIFIC getRectangleArea; 
          DEFINE k INT; 
          LET k = i * j; 
          RETURN k; 
          END FUNCTION;
        
现在您可以使用特定名称,如下所示:
GRANT EXECUTE ON SPECIFIC FUNCTION getSquareArea TO gbasedbt;
          GRANT EXECUTE ON SPECIFIC FUNCTION getRectangleArea TO gbasedbt;
        
若没有特定名称,则您可能需要发出下列语句:
GRANT  EXECUTE ON FUNCTION getArea (INTEGER) TO gbasedbt;
          GRANT  EXECUTE ON FUNCTION getArea (INTEGER,INTEGER) TO gbasedbt;