现在,您可将以 FOREACH 定义的游标和集合查询添加至 SPL 例程,如下例所示。
图: 以 FOREACH 定义的游标和集合查询。
CREATE PROCEDURE shapes()
DEFINE vertexes SET( point NOT NULL );
DEFINE pnt point;
SELECT definition INTO vertexes FROM polygons
WHERE id = 207;
FOREACH cursor1 FOR
SELECT * INTO pnt FROM TABLE(vertexes)
. . .
END FOREACH
. . .
END PROCEDURE;
以上展示的语句形成处理集合变量的元素的 SPL 例程的框架。要将集合分解为它的元素, 请使用集合派生的表。在将集合分解为它的元素之后,该例程可单独地访问元素作为集合 派生的表的行。既然您已选择了 pnt 中的一个元素,您就可更新或删除那个元素,如 更新 集合元素 和 删除集合元素 描述的那样。 要了解集合查询的完整语法,请参阅《GBase 8s SQL 指南:语法》 中的 SELECT 语句。 要了解集合派生的表的语法,请参阅《GBase 8s SQL 指南:语法》 中的“集合派生的表” 段。