PL/SQL цикли

Pl Sql Cikli



Циклите са един от основните градивни елементи в програмирането. Използваме цикли, за да създадем управляеми кодови блокове, които могат да бъдат изпълнени многократно, когато определено условие е вярно. Те са основната кост при автоматизиране на повтарящи се задачи без пренаписване на блок код многократно.

Както всички основни езици за програмиране, 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. Можете да проверите документацията, за да проучите допълнително.