Пока зацикливается Oracle PL/SQL с примером
Что такое цикл while в PL/SQL?
Пока цикл в PL/SQL работает аналогично базовому оператору цикла, за исключением того, что условие EXIT находится в самом начале цикла. Он работает как цикл проверки входа, где блок выполнения будет выполняться только в том случае, если условие удовлетворено, поскольку условие выхода проверяется перед выполнением.
Для выхода из цикла явно не требуется ключевое слово EXIT, поскольку оно каждый раз неявно проверяет условие.
Синтаксис цикла PL/SQL while
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- В приведенном выше синтаксисе ключевое слово «WHILE» отмечает начало цикла, а «END LOOP» — конец цикла.
- Условие EXIT оценивается каждый раз перед началом выполнения исполнительной части.
- Блок выполнения содержит весь код, который необходимо выполнить.
- Исполняющая часть может содержать любой оператор выполнения.
Пример Oracle PL/SQL цикл while
В этом примере мы собираемся напечатать число от 1 до 5, используя оператор цикла WHILE. Для этого мы выполним следующий код:

DECLARE
a NUMBER :=1;
BEGIN
dbms_output.put_line('Program started');
WHILE (a <= 5)
LOOP
dbms_output.put_line(a);
a:=a+1;
END LOOP;
dbms_output.put_line(‘Program completed' );
END:
/
Code Объяснение:
- Code линия 2: объявление переменной «a» как типа данных «NUMBER» и инициализация ее значением «1».
- Code линия 4: Печать сообщения «Программа запущена».
- Code строка 5: Ключевое слово WHILE отмечает начало цикла, а также проверяет, меньше ли значение a или равно 5.
- Code строка 7: Печатает значение «а».
- Code строка 8: Увеличивает значение «a» на +1.
- Code строка 9: Ключевое слово «END LOOP» отмечает конец блока выполнения.
- Код из строки 7 и строки 8 будет продолжать выполняться до тех пор, пока «a» не достигнет значения 6, поскольку условие вернет TRUE, и элемент управления выйдет из поиска.
- Code строка 10: Печать заявления «Программа завершена»
Резюме
| Loop | ПОКА цикл |
|---|---|
| Критерии ВЫХОДА | Выход, когда условие проверки возвращает false |
| Применение | Хорошо использовать, когда количество циклов неизвестно, а выход основан на каком-то другом условии. |
