指定例程名称

紧跟在 CREATE PROCEDURE 或 CREATE FUNCTION 语句之后,且在参数列表之前为 SPL 例程指定名称,如图所示。

图: 为 SPL 例程指定名称。

CREATE PROCEDURE add_price (arg INT ) 
GBase 8s 允许您以相同的名称但以不同的参数创建多个 SPL 例程。此特性称为例程重载。例如,您可能在您的数据库中创建下列每一 SPL 例程:
CREATE PROCEDURE multiply (a INT, b FLOAT)
          CREATE PROCEDURE multiply (a INT, b SMALLINT)
          CREATE PROCEDURE multiply (a REAL, b REAL)

如果您以名称 multiply() 调用例程,则数据库服务器评估该例程的名称和它的参数来确定执行哪个例程。

例程解析是数据库服务器在其中搜索它可使用的例程签名,给定例程的名称和参数列表的过程。每个例程都有一个基于下列信息唯一地标识该例程的签名
  • 例程的类型(过程或函数)
  • 例程名称
  • 参数的数目
  • 参数的数据类型
  • 参数的顺序
如果您输入该例程的完整参数列表,则在 CREATE、DROP 或 EXECUTE 语句中使用该例程签名。例如,下图中的每一语句都使用例程签名。

图: 例程签名。

CREATE FUNCTION multiply(a INT, b INT);
          
          DROP PROCEDURE end_of_list(n SET, row_id INT);
          
          EXECUTE FUNCTION compare_point(m point, n point);