Tāpat kā visas galvenās programmēšanas valodas, PL/SQL atbalsta cilpas, kas ļauj atkārtot instrukciju kopu, līdz tiek izpildīts noteikts nosacījums.
Šajā apmācībā mēs izpētīsim LOOP priekšraksta izmantošanu PL/SQL, lai atkārtoti izpildītu koda bloku.
Oracle cilpas
PL/SQL valoda atbalsta dažādas cilpas konstrukcijas, piemēram, “for” cilpas un “while” cilpas. Mēs varam izteikt vispārējās cilpas sintaksi programmā Oracle, kā parādīts tālāk:
<< etiķete >> CILPA
cilpa_paziņojums;
END CILPAS cilpas_iezīme;
Tas satur atslēgvārdu LOOP un izpildāmās cilpas pamattekstu, un tas ir ietverts atslēgvārdam END LOOP.
LOOP bloks izpilda noteiktās darbības un pēc pabeigšanas atgriež vadīklu augšējās cilpas klauzulā. Tas parasti tiek iekļauts klauzulā EXIT vai EXIT WHEN, lai pārtrauktu cilpu pēc noteikta nosacījuma izpildes. Tas palīdz novērst bezgalīgas cilpas.
Oracle For Loop sintakse:
Tālāk ir parādīta “for” cilpas sintakse PL/SQL:
SĀKTFOR cilpas_mainīgais IN [apakšējais_saistījums..augšējais_saistījums] CILS
-- kods, kas jāizpilda cilpā
BEIGAS CILPA;
BEIGAS;
Loop_variable ļauj definēt cilpu, kas tiek izmantota, lai kontrolētu cilpu un apakšējo un augšējo robežu. Augšējā un apakšējā robeža norāda diapazona vērtības, kurās notiek cilpas novērtējums.
Oracle While Loops
Mēs varam arī definēt “while” cilpas PL/SQL, kā to parāda šāda sintakse:
SĀKTWHILE stāvoklis CILPA
-- cilpas darbība
BEIGAS CILPA;
BEIGAS;
Ciklā “while” cilpas darbība tiek izpildīta atkārtoti, kamēr nosacījums ir patiess.
Oracle kursors cilpām
Oracle atbalsta arī cilpas “kursors”, kas ļauj mums izpildīt instrukciju kopu katrai rindai noteiktā rezultātu kopā. Sintakse var izteikt šādi:
SĀKTFOR loop_variable IN (SELECT column1, column2, ...
NO tabulas1, tabulas2, ...
WHERE nosacījums) CILPA
-- cilpas darbība
BEIGAS CILPA;
BEIGAS;
Oracle cilpu piemērs
Šajos piemēros ir aprakstīti pamati darbam ar kursora cilpām, while un kursora cilpām programmā Oracle.
Oracle For Loop piemērs:
Šis piemērs parāda, kā izmantot cilpu “for”, lai drukātu skaitļus no 1 līdz 10.
SĀKTFOR i IN 1..10 CILPĀ
DBMS_OUTPUT.PUT_LINE(i);
BEIGAS CILPA;
BEIGAS;
Kamēr cilpas piemērs:
Mēs varam veikt līdzīgu darbību, izmantojot kamēr cilpu, kā parādīts tālāk:
SĀKTDEKLARĒT
i SKAITS := 1;
SĀKT
KAmēr i <= 10 CILPA
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
BEIGAS CILPA;
BEIGAS;
BEIGAS;
Tam vajadzētu veikt līdzīgu darbību kā cilpai “for”.
Kursora cilpa piemērs:
Tālāk ir parādīts, kā izmantot cilpu “kursors”, lai iegūtu klienta pilnu vārdu.
SĀKTATTIECĪBĀ UZ darbinieku IN (ATLASĪT vārds, uzvārds
NO darbiniekiem) CILPA
DBMS_OUTPUT.PUT_LINE(darbinieka.pirms_nosaukums || ' ' || darbinieks.uzvārds);
BEIGAS CILPA;
BEIGAS;
Izvades piemērs:
Secinājums
Šajā ziņojumā jūs saskārāties ar trim galvenajiem cilpu veidiem Oracle PL/SQL valodā. Varat pārbaudīt dokumentāciju, lai izpētītu sīkāk.