GBase 8s
运维管理
文章
南大通用GBase8s 常用SQL语句(208)
发表于2025-12-17 10:58:2526次浏览1个评论
迭代器函数
FROM 子句可包括对迭代器函数的调用,来为查询指定来源。迭代器函数是用户定义的功能,多次返回到它的调用 SQL 语句,每次返回至少一个值。
您可使用虚拟的表接口查询迭代器 UDR 的返回结果集。使用此语法来在 FROM 子句中调用迭代器函数:
迭代器
在早于 GBase 8s 10.5 的版本中,要求有关键字 FUNCTION(或 PROCEDURE)。在此版本中,这些对 SQL 的 ANSI/ISO 标准的关键字扩展是可选的,且无效。下列两个指定 fibGen( ) 作为迭代器函数的查询规范,是等同的:
SELECT * FROM TABLE FUNCTION ( fibGen(10));
SELECT * FROM TABLE ( fibGen(10));
仅可在此查询的上下文之内引用 table。在 SELECT 语句终止之后,虚拟表不再存在。
列的数目必须与通过迭代器返回的值的数量相匹配。外部的函数可返回不超过一个值(但那可为集合数据类型)。SPL 例程可返回多个值。
然而,如果迭代器 table 函数的任何参数是聚集表达式,则数据库服务器发出错误 -595.
例如,要引用该 SELECT 语句的其他部分中的虚拟 table,在 WHERE 子句或 HAVING 子句中,您必须在 FROM 子句中声明它的名称和虚拟的列名称。如果您在 Projection 子句的 Select 列表中使用星号标记,则无需在 FROM 子句中声明 table 名称或 column 名称:
SELECT * FROM ...
要获取在查询中使用迭代器函数的更多信息和示例,请参阅 GBase 8s 用户定义的例程和数据类型开发者指南 。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25052
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526