Oracle PL / SQL LOOP ar piemēru

Satura rādītājs:

Anonim

Kas ir cilpas?

Loops ļauj noteiktai programmas daļai izpildīt vēlamo reižu skaitu.

Šajā apmācībā mēs redzēsim cilpas jēdzienu PL / SQL un vadības plūsmu cilpās. Tu iemācīsies-

  • Ievads cilpu koncepcijā
  • Loop Control paziņojumi
  • PL / SQL cilpu veidi
  • Pamata paziņojums
  • Cilpu marķēšana

Ievads cilpu koncepcijā

Loops koncepcija nodrošina šādas priekšrocības kodēšanā.

  • Koda atkārtota izmantošana
  • Samazināts koda lielums
  • Viegla vadības plūsma
  • Samazināta sarežģītība

Zemāk redzamajā diagrammā attēlota cilpas koncepcija attēlveidā

Iepriekš minētajā diagrammā tiks pārbaudīts cilpas nosacījums, un, kamēr cilpas nosacījums ir izpildīts, izpildes bloks tiks izpildīts.

Katrā atkārtojumā ir jāmaina cilpas skaitītāja mainīgais, kas faktiski izlemj cilpas nosacījumu, lai vadība izietu no cilpas. Dažos gadījumos šis cilpas skaitītāja mainīgais ir pieauguma / samazināšanas operators iepriekš noteiktam skaitlim, un dažos gadījumos tas ir meklēšanas nosacījums, kas turpina izpildīt bloku, līdz tas to apmierina.

Loop Control paziņojumi

Pirms cilpas jēdziena apgūšanas ir obligāti jāapgūst cilpas vadības paziņojumi. Cilpas vadības paziņojumi ir tie, kas faktiski kontrolē izpildes plūsmu cilpas iekšpusē. Zemāk ir detalizēts apraksts par cilpas vadības paziņojumiem.

TURPINĀT

Šis atslēgvārds nosūta norādījumu PL / SQL motoram, ka ikreiz, kad PL / SQL dzinējs sastop šo cilni iekšpusē, tas izlaiž atlikušo kodu koda izpildes blokā, un tūlīt tiks sākta nākamā atkārtošana. To galvenokārt izmantos, ja cilpa iekšpusē esošo kodu vēlaties izlaist noteiktām atkārtojuma vērtībām.

Izeja / iziet, kad

Šis atslēgvārds nosūta norādījumu PL / SQL motoram, ka ikreiz, kad PL / SQL dzinējs sastop šo atslēgvārdu, tas nekavējoties izies no pašreizējās cilpas. Ja PL / SQL dzinējs sastopas ar EXIT ligzdotā cilpā, tas iznāks no cilpas, kurā tas ir definēts, ti, ligzdotajās cilpās, norādot EXIT iekšējā cilpā, vadība tiks izieta tikai no iekšējās cilpas, bet nevis no ārējās cilpas. Pēc “EXIT WHEN” seko izteiksme, kas dod Būla rezultātu. Ja rezultāts ir PATIESA, tad vadība iziet.

IET UZ

Šis paziņojums pārsūtīs vadību uz apzīmēto paziņojumu ("GOTO

  • Vadību var nodot tikai apakšprogrammās.
  • Vadību nevar nodot no izņēmuma apstrādes daļas uz izpildes daļu

Šī apgalvojuma lietošana nav ieteicama, ja vien nav citas alternatīvas, jo koda vadības izsekojamība programmā būs ļoti sarežģīta, pateicoties vadības nodošanai no vienas daļas uz otru.

PL / SQL cilpu veidi

PL / SQL nodrošina trīs veidu cilpas

  • Pamata cikla paziņojums
  • Cilpas paziņojumam
  • Kaut cilpas paziņojums

Pamata paziņojums

Šis cilpas paziņojums ir vienkāršākā cilpas struktūra PL / SQL. Izpildes bloks sākas ar atslēgvārdu 'LOOP' un beidzas ar atslēgvārdu 'END LOOP'.

Izejas nosacījums jānorāda šajā izpildes blokā tā, lai vadība izietu no cilpas.

Lai izietu no cilpas, izpildes daļā ir skaidri jānorāda EXIT atslēgvārds.

LOOPEND LOOP;
Sintakses skaidrojums:
  • Iepriekš minētajā sintaksē atslēgas vārds “LOOP” iezīmē cilpas sākumu, bet “END LOOP” - cilpas beigas.
  • Izpildes bloks satur visu kodu, kas jāizpilda, ieskaitot nosacījumu EXIT.
  • Izpildes daļā var būt jebkurš izpildes paziņojums.

Piezīme: Pamata cikla paziņojums bez atslēgvārda EXIT būs BEZgalīgs-LOOP, kas nekad neapstāsies.

1. piemērs : Šajā piemērā mēs izdrukāsim numuru no 1 līdz 5, izmantojot pamata cilpas paziņojumu. Šim nolūkam mēs izpildīsim šādu kodu.

DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/

Koda skaidrojums:

  • 2. koda rindiņa : mainīgā “a” deklarēšana par “NUMBER” datu tipu un inicializēšana ar vērtību “1”.
  • 4. koda rindiņa : izdrukājiet paziņojumu "Programma sākta".
  • 5. koda rindiņa: Atslēgvārds “LOOP” iezīmē cikla sākumu.
  • 6. koda rindiņa: izdrukā “a” vērtību.
  • 7. koda rindiņa: palielina “a” vērtību ar +1.
  • 8. koda rinda: Pārbauda, ​​vai “a” vērtība ir lielāka par 5.
  • 9. koda rindiņa: Atslēgvārds “END LOOP” atzīmē izpildes bloka beigas.
  • Kods no 6. rindas līdz 8. rindai tiks izpildīts līdz brīdim, kad “a” sasniegs vērtību 6, jo nosacījums atgriezīs vērtību TRUE, un vadība izies no cilpas.
  • 10. koda rindiņa: Izraksta "Programma pabeigta" izdrukāšana

Cilpu marķēšana

PL / SQL cilpas var apzīmēt. Etiķete jāievieto starp "<<" un ">>". Cilpu marķēšana, jo īpaši ligzdoto cilpu kodos, nodrošinās labāku lasāmību. Etiķeti var dot komandā EXIT, lai izietu no konkrētās cilpas. Izmantojot etiķeti, vadību var veikt, lai tieši izietu no ligzdoto cilpu ārējās cilpas no jebkuras vietas cilpu iekšpusē, dodot komandu exit, kam seko ārējās cilpas etiķete.

<>LOOP  . <> LOOP --inner  END LOOP; . END LOOP;
Sintakses skaidrojums:
  • Iepriekš minētajā sintaksē izejas cilpā ir vēl viena cilpa.
  • '<>' un '<>' ir šo cilpu apzīmējumi.

1. piemērs : Šajā piemērā mēs drukāsim numuru, sākot no 1, izmantojot Basic loop paziņojumu. Katrs skaitlis tiks drukāts tik reižu, cik tā vērtība. Sērijas augšējā robeža ir noteikta programmas deklarācijas daļā. Ļaujiet mums uzzināt, kā mēs varam izmantot etiķetes koncepciju, lai to panāktu. Šim nolūkam mēs izpildīsim šādu kodu

DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop»‭ ‬LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/

Koda skaidrojums:

  • Kodu rinda 2-3 : Mainīgo “a” un “b” deklarēšana par “NUMBER” datu tipu.
  • 4. koda rindiņa : mainīgā “upper_limit” deklarēšana par “NUMBER” datu tipu ar vērtību “4”
  • Kodu rinda 6 : izdrukāt paziņojumu "Programma sākta".
  • 7. koda rindiņa: ārējā cilpa ir marķēta kā “external_loop”
  • 9. koda rindiņa: “a” vērtību palielina ar 1.
  • 11. koda rindiņa: Iekšējā cilpa ir apzīmēta kā “inner_loop”.
  • 13. koda rindiņa: nosacījums EXIT, kas pārbauda, ​​vai vērtība “a” ir augstāka par vērtību “upper_limit”. Ja nē, tad tas iet tālāk, citādi tas tieši iziet no ārējās cilpas.
  • 14. koda rindiņa: “b” vērtības drukāšana.
  • 15. koda rindiņa: palielina “b” vērtību ar +1.
  • 16. koda rindiņa: nosacījums EXIT, kas pārbauda, ​​vai “b” vērtība ir lielāka par “a”. Ja tā, tad tas izies no vadības no iekšējās cilpas.
  • 14. koda rindiņa: Izraksta "Programma pabeigta" izdrukāšana

Kopsavilkums

Loop Pamata cilpa
Izejas kritēriji Iziet, kad izpildes daļā sastopat atslēgvārdu “IZEJOT”
Lietošana Labi lietojams, ja izeja nav balstīta uz kādu īpašu nosacījumu.