Както всички основни езици за програмиране, PL/SQL поддържа цикли, които позволяват набор от инструкции да бъдат повтаряни, докато не бъде изпълнено определено условие.
В този урок ще проучим използването на оператора LOOP в PL/SQL за многократно изпълнение на блок от код.
Oracle Loops
Езикът PL/SQL поддържа различни конструкции на цикли, като цикъл „for“ и цикли „while“. Можем да изразим синтаксиса на общ цикъл в Oracle, както е показано по-долу:
<< етикет >> LOOP
loop_statement;
END LOOP loop_label;
Това съдържа ключовата дума LOOP и тялото на цикъла за изпълнение и е оградено с ключовата дума END LOOP.
Блокът LOOP изпълнява дефинираните действия и връща контрола на горната клауза за цикъл след завършване. Това обикновено е затворено в клауза EXIT или EXIT WHEN за прекратяване на цикъла след изпълнение на определено условие. Това помага за предотвратяване на безкрайните цикли.
Синтаксис на Oracle For Loop:
Следното показва синтаксиса на цикъл „for“ в PL/SQL:
НАЧАЛОFOR цикъл_променлива IN [долна_граница..горна_граница] LOOP
-- код за изпълнение в цикъла
КРАЙНА ПРИМКА;
КРАЙ;
loop_variable ви позволява да дефинирате цикъл, който се използва за контрол на цикъла и долната и горната граница. Горната и долната граница определят стойностите на диапазона, където се извършва оценката на цикъла.
Oracle While Loops
Можем също така да дефинираме циклите „while“ в PL/SQL, както е показано от следния синтаксис:
НАЧАЛОWHILE условие LOOP
-- циклично действие
КРАЙНА ПРИМКА;
КРАЙ;
В цикъл „while“ действието на цикъла се изпълнява многократно, докато условието е вярно.
Oracle Cursor For Loops
Oracle също така поддържа циклите „курсор за“, което ни позволява да изпълним набор от инструкции за всеки ред в даден набор от резултати. Синтаксисът може да се изрази по следния начин:
НАЧАЛОFOR loop_variable IN (SELECT колона1, колона2, ...
ОТ таблица1, таблица2, ...
Условие WHERE) LOOP
-- циклично действие
КРАЙНА ПРИМКА;
КРАЙ;
Примерни цикли в Oracle
Следващите примери покриват основите на работа с for, while и for цикли на курсора в Oracle.
Пример за цикъл на Oracle:
Този пример демонстрира как да използвате цикъл „for“ за отпечатване на числата от 1 до 10.
НАЧАЛОFOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
КРАЙНА ПРИМКА;
КРАЙ;
Пример за цикличен цикъл:
Можем да извършим подобно действие с помощта на цикъл while, както е показано по-долу:
НАЧАЛОДЕКЛАРИРАЙТЕ
i ЧИСЛО := 1;
НАЧАЛО
WHILE i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
КРАЙНА ПРИМКА;
КРАЙ;
КРАЙ;
Това трябва да извърши действие, подобно на цикъла 'for'.
Курсор за цикъл Пример:
Следното показва как да използвате цикъла „курсор за“, за да получите пълното име на клиента:
НАЧАЛОЗА служител IN (ИЗБЕРЕТЕ име, фамилия
ОТ служители) LOOP
DBMS_OUTPUT.PUT_LINE(employee.first_name || ' ' || Employee.last_name);
КРАЙНА ПРИМКА;
КРАЙ;
Примерен резултат:
Заключение
В тази публикация се натъкнахте на три основни типа цикли в езика Oracle PL/SQL. Можете да проверите документацията, за да проучите допълнително.