用户定义的函数(UDF)是一个例程,您以 SPL 或诸如 C 或 Java™ 这样的数据库的外部语言编写该例程,且该例程将值返回到它的调用上下文。
您可在 SQL 语句内调用用户定义的函数。与内建的函数不一样,仅可由该函数的创建者和 DBA 以及已被授予了对该函数的 Execute 权限的用户可调用用户定义的函数。要获取更多信息,请参阅 例程级权限。
read_address('Miller')
read_address(lastname = 'Miller')
CREATE FUNCTION read_address(lastname CHAR(20)) RETURNING address_t ... ;
语句本地的变量(SLV)使得应用能够将值从用户定义的函数调用传递到同一 SQL 语句的另一部分。
随同用户定义的函数调用来使用 SLV
要获取关于如何以 OUT 或 INOUT 参数编写 UDR 的信息,请参阅 GBase 8s 用户定义的例程和数据类型开发者指南 。
要获取更多信息,请参阅 为用户定义的例程指定 INOUT 参数 和 为用户定义例程指定 OUT 参数。
必须在 WHERE 内进行用户定义的函数的调用。要获取关于声明 SLV 的语法的信息,请参阅 语句本地的变量声明。
在用户定义的函数的调用已初始化了 SLV 之后,您可在其中声明了 SLV 的同一 SQL 语句的其他部分中使用此值,包括其 WHERE 子句包括该 SLV 声明的查询的子查询。要获取关于在 SELECT 语句内使用 SLV 的信息,请参阅 语句本地的变量表达式。
除了使用 SLV 来从 OUT 或 INOUT 参数检索值之外,您还可使用本地变量或 SPL 例程的参数来从有 OUT 或 INOUT 参数的 SPL 或 C 例程检索值。