集合查询

在您在 FOREACH 与 END FOREACH 语句之间声明游标之后,请您输入称为集合查询的特殊的、受限形式的 SELECT 语句。

集合查询是使用后跟集合变量的名称的 FROM TABLE 关键字的 SELECT 语句。下图展示此结构,称其为集合派生的表

图: 集合派生的表。

FOREACH cursor1 FOR
            
            SELECT * INTO pnt FROM TABLE(vertexes)
            . . .
            END FOREACH
该 SELECT 语句使用集合变量 vertexes 作为集合派生的表。您可将集合派生的表视为一列的表,该集合的每一元素都是表的一行。例如,您可将存储在 vertexes 中的四个点的 SET 可视化作为带有四行的表,诸如下图展示的一个。

图: 带有四行的表。

'(3.0,1.0)'
          '(8.0,1.0)'
          '(3.0,4.0)'
          '(8.0,4.0)'
在前图中的 FOREACH 语句的第一个迭代之后,该集合查询选择 vertexes 中的第一个元素,并将其存储在 pnt 中,因此,pnt 包含值 '(3.0,1.0)'。
提示: 由于集合变量 vertexes 包含 SET,而不是 LIST,因此,vertexes 中的元素没有定义了的顺序。在真实的数据库中,值 '(3.0,1.0)' 可能不是 SET 中的第一个元素。