带有游标的 INTO 子句

如果 EXECUTE FUNCTION 调用返回多行值的 UDF,则它必须执行游标函数。游标函数可返回一行或多行值,且必须与要执行的函数游标相关联。

如果 SPL 函数返回多于一行,或返回集合数据类型,则您必须以游标访问这些行或集合元素。

要返回多于一行值,必须将一个外部函数(用 C 或 Java™ 语言编写)定义为迭代函数。要获得关于迭代函数的更多信息,请参阅 GBase 8s DataBlade API 程序员指南。

在 SPL 例程中,如果 SELECT 返回多于一行,则您必须使用 FOREACH 语句来逐个地访问这些行。SELECT 语句的 INTO 子句可存储取得的值。要获取更多信息,请参阅 FOREACH。

要返回多行值,SPL 函数必须在其 RETURN 语句中包括 WITH RESUME 关键字。关于如何写 SPL 函数的更多信息,请参阅 GBase 8s SQL 教程指南。

在 GBase 8s ESQL/C 程序中,DECLARE 语句可声明函数游标,且 FETCH 语句可从游标逐个地返回行。 您可将 INTO 子句放在 EXECUTE FUNCTION 语句中或放在 FETCH 语句中,但您不可两个都放。下列 GBase 8s ESQL/C 代码示例展示您可使用 INTO 子句的不同方法: