Поки зациклюється Oracle PL/SQL із прикладом
⚡ Розумний підсумок
Oracle Цикл PL/SQL WHILE повторює блок коду, поки умова залишається істинною. Це цикл перевірки записів, який перевіряє умову виходу перед кожною ітерацією, тому блок може виконуватися нуль разів, і йому не потрібне явне ключове слово EXIT.

Що таке цикл While у PL/SQL?
Команда Поки петля У PL/SQL працює аналогічно базовому оператору циклу, за винятком того, що умова виходу знаходиться на самому початку циклу. Він працює як цикл перевірки записів, де блок виконання виконується, лише якщо умова виконана, оскільки умова виходу перевіряється перед виконанням.
Для виходу з циклу явно не потрібне ключове слово 'EXIT', оскільки умова щоразу перевіряється неявно.
Синтаксис циклу PL/SQL
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- Ключове слово «WHILE» позначає початок циклу, а «END LOOP» – його кінець.
- Умова виходу обчислюється щоразу перед початком виконання виконуваної частини.
- Блок виконання містить весь код, який потрібно виконати.
- Виконувана частина може містити будь-який виконуваний оператор.
Приклад Oracle PL/SQL While Loop
У цьому прикладі ми друкуємо числа від 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: Друкує значення 'a'.
- Code рядок 8: Збільшує значення 'a' на 1.
- Code рядок 9: Ключове слово 'END LOOP' позначає кінець блоку виконання.
- Рядки 7 та 8 продовжують виконуватися, доки 'a' не досягне значення 6, після чого умова повертає FALSE, і керування виходить з петля.
- Code рядок 10: Виведення повідомлення «Програма завершена».
Цикл WHILE проти циклу FOR проти базового циклу
PL/SQL пропонує три типи циклів, і вибір правильного з них забезпечує зрозумілість коду. Цикл WHILE підходить для повторення, керованого умовою, тоді як два інші підходять для фіксованої кількості або явно контрольованого виходу.
| Петля | Критерії виходу | Найкраще використовувати, коли |
|---|---|---|
| Цикл WHILE | Умова зверху стає хибною | Кількість ітерацій невідома |
| Цикл FOR | Лічильник досягає кінця діапазону | Кількість ітерацій відома |
| Базовий цикл | Явний ВИХІД у блоці | Вихід керується вручну |
Оскільки цикл WHILE перевіряє свою умову на початку, тіло циклу може виконатися нуль разів, якщо умова хибна з самого початку. Це ключова відмінність від базового циклу, тіло якого завжди виконується принаймні один раз.
Уникнення нескінченного циклу While
Цикл WHILE повністю залежить від руху керуючої змінної до умови виходу. Якщо цього не відбувається, цикл виконується вічно, і сеанс зависає. Цьому запобігають три звички:
- Змінюйте лічильник на кожній ітерації. У цьому прикладі значення рядка 'a' збільшується всередині циклу; видалення цього рядка призведе до нескінченного циклу.
- Перевірте межу. Переконайтеся, що умова може стати хибною для початкового значення, а не лише для ідеального випадку.
- Додайте безпечний ВИХІД КОЛИ. Для циклу, керованого даними, EXIT WHEN при максимальній кількості ітерацій діє як захист від неочікуваного значення.
Коли кількість повторень дійсно фіксована, цикл FOR повністю усуває ризик, оскільки його лічильник керується автоматично.
