RETURN

使用 RETURN 语句来指定 SPL 函数将哪些值(如果有的话)返回给调用上下文。

语法

用法

GBase 8s 中,对于向后兼容性,您可以在 CREATE PROCEDURE 语句中使用 RETURN 语句创建 SPL 函数。然而,通过在 CREATE FUNCTION 语句中只使用 RETURN ,您可以保留使用 CREATE FUNCTION 来定义返回值的例程的约定,并为其它例程保留 CREATE PROCEDURE。

SPL 函数中的所有 RETURN 语句必须和定义该函数的 CREATE FUNCTION (或 CREATE PROCEDURE)语句的 RETURNING 子句相一致。表达式的任何 RETURN 列表在基数上必须与函数定义的 RETURNING 子句的数据类型的有序列表相匹配,并且在数据类型方面必须与其兼容。

或者,即使 RETURNING 子句列出了一个或多个数据类型,RETURN 语句也不能指定表达式。在这种情况下,没有指定表达式的 RETURN 语句等于将预期的 NULL 值的数目返回给调用上下文。只有将 SPL 函数声明为不返回任何值时,不带有任何表达式的 RETURN 语句才可以存在。否则,它返回 NULL 值。

以下 SPL 函数有两个有效的 RETURN 语句:
CREATE FUNCTION two_returns (stockno INT)  RETURNING CHAR (15);
              DEFINE des CHAR(15);
              ON EXCEPTION (-272)     -- if user does not have select privilege
              RETURN;              -- return no values.
              END EXCEPTION;
              SELECT DISTINCT descript INTO des FROM stock 
              WHERE stock_num = stockno;
              RETURN des;
              END FUNCTION;
在前面的示例中调用函数的程序应测试是否没有返回值并进行相应的操作。
1 请参阅 表达式