暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBae 8s SQL 指南:语法_3. SPL 语句_3.9 FOREACH(3)

GBASE数据库 2022-04-21
455

该 SPL 过程使用 SELECT ... INTO 子句、显式地已命名游标和过程调用来说明 FOREACH 语
句:
CREATE PROCEDURE foreach_ex()
DEFINE i, j INT;
FOREACH SELECT c1 INTO i FROM tab ORDER BY 1
INSERT INTO tab2 VALUES (i);
END FOREACH
FOREACH cur1 FOR SELECT c2, c3 INTO i, j FROM tab
IF j > 100 THEN
DELETE FROM tab WHERE CURRENT OF cur1; 
CONTINUE FOREACH;
END IF
UPDATE tab SET c2 = c2 + 10 WHERE CURRENT OF cur1;
END FOREACH
FOREACH EXECUTE PROCEDURE bar(10,20) INTO i
INSERT INTO tab2 VALUES (i);
END FOREACH
END PROCEDURE; -- foreach_ex
当出现以下任意情形时,会关闭选择游标:
⚫ 游标不再返回行。
⚫ 游标是一个没有 HOLD 指定选择游标,并且使用 COMMIT 或 ROLLBACK 语句完成某
项事务。
⚫ 执行 EXIT 语句,它转移对 FOREACH 语句的控制。
⚫ 在 FOREACH 语句的主体之内发生未俘获的异常。(请参阅 ON EXCEPTION。)
⚫ 正执行此游标例程的调用例程中的游标(在 FOREACH 循环中)出于任何原因而关闭。
注:
FOREACH 语句不能定义 SCROLL 游标。每个 FOREACH 游标都是一个顺序游标,它只能获取来自活
动集顺序中的下一行。FOREACH 定义的游标每次打开时只能读取活动集。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论