当您希望保证循环的终止时,请使用 FOR 语句来初始化受控的(限定的)循环。FOR 语句使用表达式或范围运算符来为循环指定有限数量的迭代。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
expression | 与 loop_var 相比较的值 | 必须与 loop_var 数据类型相匹配 | 表达式 |
increment_expr | loop_var 增加的正值或负值。缺省为 1(如果 left_expr < right_expr),或者 -1 (如果 left_expr > right_expr) | 必须返回整数。不能返回 0。 | 表达式 |
label | 此循环的循环标签的名称 | 必须存在且在 SPL 例程中的标签名中必须是唯一的 | 标识符 |
left_expr | 开始范围的表达式 | 值必须与 loop_var 的 SMALLINT 或 INT 数据类型相匹配,但是 left_expr 不能等于 right_expr | 表达式 |
loop_var | 确定指定循环次数的变量 | 必须在该语句块的作用域内定义 | 标识符 |
right_expr | 范围中的结束表达式 | 同 left_expr | 表达式 |
数据库服务器在 FOR 语句执行之前计算所有表达式的值。如果其中一个或多个表达式是其值在循环期间更改的变量,则该更改对循环的迭代没有影响。
您可以将来自 SELECT 语句的输出用作表达式。
当 loop_var 等于表达式列表或连接的范围中的每个元素的值,或当它遇到 EXIT FOR 语句时,FOR 循环终止。但如果在 FOR 语句的主体中的赋值尝试修改 loop_var 值,会发生错误。
如果未指定 increment_expr,则每一步的缺省大小为 1,由以上的规则决定是正或负。