使用集合变量
FOREACH 语句允许您为 SPL 集合变量声明游标。 这种游标称为集合游标。使用集合变量访问
集合(SET、 MULTISET 、LIST)列的元素。当要访问集合变量中的一个或多个元素时,请使用
游标。
以下来自 SPL 例程的摘抄显示了如果填充集合游标然后如何使用游标访问个别元素:
DEFINE a SMALLINT;
DEFINE b SET(SMALLINT NOT NULL);
SELECT numbers INTO b FROM table1 WHERE id = 207;
FOREACH cursor1 FOR
SELECT * INTO a FROM TABLE(b);
...
END FOREACH;
在此示例中,SELECT 语句从集合变量 b 中一次选择一个元素插入到元素变量 a 中。该投影列表
是星号,因为集合变量 b 包含内置类型的集合。变量 b 与 TABLE 关键字作为 CollectionDerived Table 一起使用。有关更多信息,请参阅集合派生表。
下一个示例还显示了如果填充集合变量以及如果使用变量存取个别元素。但是,此示例在它的投影
列表中使用 ROW 类型字段的列表:
DEFINE employees employee_t;
DEFINE n VARCHAR(30);
DEFINE s INTEGER;
SELECT emp_list into employees FROM dept_table
WHERE dept_no = 1057;
FOREACH cursor1 FOR
SELECT name,salary
INTO n,s FROM TABLE( employees ) AS e;
...
END FOREACH;
这里的集合变量 employees 包含一个 ROW 类型的集合。每个 ROW 类型包含 name 和 salary
字段。该集合查询每次查询一个名字和薪水,并将 name 放到 n 中将 salary 放到 s 中。AS 关
键字声明 e 作为集合派生表 employees 的别名。只要 SELECT 语句执行,该别名就存在。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




