В этом учебном материале вы узнаете, как в Oracle/PLSQL использовать FOR LOOP c синтаксисом и примерами.
Описание
В Oracle/PLSQL цикл FOR LOOP позволяет выполнить код повторно в течение фиксированного количества раз.
Синтаксис
LOOP
{...statements...}
END LOOP;
Параметры или аргументы
loop_counter - переменная счетчика цикла в цикле FOR LOOP.
REVERSE не является обязательным. Если REVERSE указано счетчик цикла будет считать в обратном порядке.
lowest_number - начальное значение для loop_counter
highest_number - конечное значение для loop_counter.
statements - код выполняющийся при каждом прохождении через цикл.
Примечание
- Вы можете использовать цикл FOR LOOP, когда хотите выполнить тело цикла фиксированное количество раз.
- Если указан параметр REVERSE, то highest_number и lowest_number будут иметь соответственно стартовое и конечное значение для loop_counter.
- См. также WHILE LOOP, EXIT WHEN.
.
Пример
1 2 3 4 |
FOR Lcntr IN 1..20 LOOP LCalc := Lcntr * 31; END LOOP; |
Этот пример цикла выполнится 20 раз. Счетчик называется LCntr начнется с 1 и закончится 20.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
declare LCalc number; begin FOR Lcntr IN 1..20 LOOP LCalc := Lcntr * 31; dbms_output.put_line(LCalc); END LOOP; end; --Результат 31 62 93 124 155 186 217 248 279 310 341 372 403 434 465 496 527 558 589 620 |
Вы можете использовать модификатор REVERSE для запуска цикл в обратном порядке. Например:
1 2 3 4 |
FOR Lcntr IN REVERSE 1..15 LOOP LCalc := Lcntr * 31; END LOOP; |
Этот пример цикла FOR LOOP выполнится 15 раз. Однако, поскольку REVERSE указано, счетчик называется LCntr, начнется с 15 и заканчивается в 1 (в сущности, цикл в обратном направлении).
Текст скрипта для примера
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
declare LCalc number; begin FOR Lcntr IN REVERSE 1..15 LOOP LCalc := Lcntr * 31; dbms_output.put_line(LCalc); END LOOP; end; --Результат: 465 434 403 372 341 310 279 248 217 186 155 124 93 62 |