使用 TO 关键字定义范围

TO 关键字表示范围运算符。范围由 left_expressionright_expression 定义,并且 STEP increment_expr 选项隐式地设置增量数。如果使用 TO 关键字,loop_var 必须是 INT 或 SMALLINT 数据类型。

以下示例显示了两个等同的 FOR 语句。每个语句使用 TO 关键字定义范围。第一个语句使用 IN 关键字,第二个语句使用等号( = )。每个语句使循环执行五次:
FOR index_var IN (12 TO 21 STEP 2)
        -- statement block
        END FOR;
        
        FOR index_var = 12 TO 21 STEP 2
        -- statement block
        END FOR;

如果省略 STEP 选项,则数据库服务器给予 increment_expr 的值为 -1 (如果 right_expression 小于 left_expression),或 +1 (如果 right_expression 大于 left_expression)。如果指定了 increment_expr ,则它必须为负数(如果 right_expression 小于 left_expression)或者正数(如果 right expression 大于 left_expression)。

以下示例中的两个语句是等价的。在第一个语句中,STEP 增量是显式的。在第二个语句中,STEP 增量隐式地为 1
FOR index IN (12 TO 21 STEP 1)
        -- statement block
        END FOR;
        
        FOR index = 12 TO 21
        -- statement block
        END FOR;

数据库服务器将 loop_var 的值参数为 left_expression 的值。在后续迭代中,服务器将 increment_expr 添加到 loop_var 的值并检查 increment_expr 以确定 loop_var 值是否仍在 left_expression right_expression 之间。如果这样,会发生下一迭代。否则,会发生循环退出。或者,如果指定另一范围,变量会具有下一范围中的第一个元素的值。