Oracle PL/SQL 中的 For In 循环

Ste*_*lsh 3 sql oracle plsql for-loop for-in-loop

在 PL/SQL 中,我可以使用 FOR IN 循环从 1 到 20 进行迭代,方法是:

FOR counter IN 1..20
Run Code Online (Sandbox Code Playgroud)

我想知道的是,是否可以对此进行简单的更改,以便仅对 1-20 之间的偶数值迭代循环?即计数器将变为 2, 4, 6, ... 20

unc*_*ion 6

添加戈登的评论......

这是语法,所以没有内置方法

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/controlstatements.htm#LNPLS411

[ label ] FOR index IN [ REVERSE ] lower_bound..upper_bound LOOP
  statements
END LOOP [ label ];
Run Code Online (Sandbox Code Playgroud)

您可以在FOR LOOP语句中模拟STEP子句

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/controlstatements.htm#BCGJHACI

DECLARE
  step  PLS_INTEGER := 5;
BEGIN
  FOR i IN 1..3 LOOP
    DBMS_OUTPUT.PUT_LINE (i*step);
  END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)