Как и все основные языки программирования, PL/SQL поддерживает циклы, которые позволяют повторять набор инструкций до тех пор, пока не будет выполнено определенное условие.
В этом руководстве мы рассмотрим использование оператора LOOP в PL/SQL для многократного выполнения блока кода.
Циклы оракула
Язык PL/SQL поддерживает различные конструкции цикла, такие как цикл for и цикл while. Мы можем выразить синтаксис универсального цикла в Oracle, как показано ниже:
<< этикетка >> ПЕТЛЯ
цикл_утверждение;
КОНЕЦ ЦИКЛА loop_label;
Он содержит ключевое слово LOOP и тело цикла для выполнения и заключен в ключевое слово END LOOP.
Блок LOOP выполняет определенные действия и после завершения возвращает управление верхнему предложению цикла. Обычно это заключено в предложение EXIT или EXIT WHEN для завершения цикла после выполнения определенного условия. Это помогает предотвратить бесконечные циклы.
Синтаксис цикла Oracle For:
Ниже показан синтаксис цикла for в PL/SQL:
НАЧИНАТЬFOR loop_variable IN [нижняя_граница..верхняя_граница] LOOP
-- код, который будет выполняться в цикле
КОНЕЦ ПЕТЛИ;
КОНЕЦ;
Переменная loop_variable позволяет вам определить цикл, который используется для управления циклом и нижними и верхними границами. Верхняя и нижняя границы определяют значения диапазона, в которых происходит оценка цикла.
Циклы Oracle в то время как
Мы также можем определить циклы «пока» в PL/SQL, как показано в следующем синтаксисе:
НАЧИНАТЬПОКА условие ЦИКЛ
-- действие цикла
КОНЕЦ ПЕТЛИ;
КОНЕЦ;
В цикле «пока» действие цикла выполняется многократно, пока условие истинно.
Курсор Oracle для циклов
Oracle также поддерживает циклы «курсор для», которые позволяют нам выполнять набор инструкций для каждой строки в заданном наборе результатов. Синтаксис можно выразить следующим образом:
НАЧИНАТЬFOR loop_variable IN (SELECT столбец1, столбец2,...
ИЗ таблицы1, таблицы2,...
ГДЕ условие) LOOP
-- действие цикла
КОНЕЦ ПЕТЛИ;
КОНЕЦ;
Примеры циклов в Oracle
Следующие примеры охватывают основы работы с циклами for, while и for в Oracle.
Oracle для примера цикла:
В этом примере показано, как использовать цикл for для печати чисел от 1 до 10.
НАЧИНАТЬFOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
КОНЕЦ ПЕТЛИ;
КОНЕЦ;
Пока пример цикла:
Мы можем выполнить аналогичное действие, используя цикл while, как показано ниже:
НАЧИНАТЬЗАЯВИТЬ
я ЧИСЛО := 1;
НАЧИНАТЬ
ПОКА i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
я := я + 1;
КОНЕЦ ПЕТЛИ;
КОНЕЦ;
КОНЕЦ;
Это должно выполнять действие, аналогичное циклу for.
Курсор для примера цикла:
Ниже показано, как использовать цикл «курсор для», чтобы получить полное имя клиента:
НАЧИНАТЬДЛЯ сотрудника IN (ВЫБЕРИТЕ имя, фамилию
ОТ сотрудников) LOOP
DBMS_OUTPUT.PUT_LINE(employee.first_name || ' ' || employee.last_name);
КОНЕЦ ПЕТЛИ;
КОНЕЦ;
Пример вывода:
Заключение
В этом посте вы столкнулись с тремя основными типами циклов в языке Oracle PL/SQL. Вы можете проверить документацию для дальнейшего изучения.