Cicluri în baze de date prin intermediul pl

În prezent, bazele de date sunt utilizate peste tot: în contabilitate, în bibliotecă, în depozit. Și Oracle este cel mai mare furnizor de software de procesare a informațiilor. Limbajul standard pentru interogările structurate SQL nu suportă buclele, dar destul de des pentru generarea de rapoarte, de exemplu, nu puteți face fără cicluri. Deoarece corporația Oracle a făcut extensia acestei limbi - PL / SQL.







Ciclurile sunt concepute pentru executarea mai multor operațiuni specifice. Există 3 tipuri de bucle în PL / SQL:

  1. Cicluri necondiționate (infinit) - ieșirea din ele nu este furnizată. Deoarece astfel de cicluri sunt specifice și rareori utilizate, ele sunt organizate folosind cicluri condiționate. Starea nu poate fi specificată deloc sau poate fi utilizată o constantă. Un exemplu al unui astfel de ciclu este mașina LOOP. END LOOP.
  2. Bucle condiționate - comenzile sunt executate până când condiția este adevărată. Exemplu, WHILE condition LOOP. END LOOP.
  3. Buclele cu un contor - un ciclu în care contorul își schimbă valoarea de la valoarea inițială înainte de final cu o anumită etapă, iar pentru orice valoare a contorului, secvența de instrucțiuni din bucla este executată. Reprezentantul acestui tip de ciclu este mașina PENTRU contorul în valoarea inițială .. valoarea finală a LOOP. END LOOP.

Cea mai simplă buclă, scrisă în PL / SQL, arată astfel:







Un astfel de ciclu este complet lipsit de sens și nesigur pentru o instanță de bază de date, deoarece nu are nici o cale de ieșire. Dintre aceste cicluri, există trei modalități de ieșire:

  1. EXIT este o ieșire necondiționată. De obicei, este utilizat împreună cu instrucțiunea IF, în care este verificată condiția de ieșire.
  2. EXIT WHEN - în acest caz, ieșirea este efectuată atunci când condiția descrisă după WHEN este îndeplinită.
  3. GOTO - în acest caz, ieșirea din buclă este efectuată cu o tranziție la contextul extern specificat de etichetă.

Să ne uităm la un exemplu de bucla ca LOOP EXIT WHEN. Iată codul:

Acțiunile vizibile acest cod nu produce, dar și erorile! Primul ciclu se termină când devin 100. În același timp, acesta este resetat și bucla este ieșită. Următoarea buclă utilizează construcția imbricată EXIT WHEN, a cărei utilizare este mai corectă din punct de vedere sintactic. Cu toate acestea, utilizarea declarațiilor condiționale vă permite să faceți anumite acțiuni înainte de a ieși din bucla. Într-o buclă a formei LOOP EXIT WHEN END LOOP este cel mai frecvent utilizat ciclu atunci când se construiesc cursoare.

Iată un alt tip de ciclu:

Spre deosebire de codul scris anterior, acțiunile de aici sunt efectuate numai în timp ce sunt valide în paranteze. Dacă condiția are o valoare falsă, bucla este terminată.

În construcțiile buclă, nu există o instrucțiune CONTINUE în PL / SQL, care uneori este destul de utilă. Acest lucru se datorează faptului că expresia CONTINUE este rezervată în limbajul PL / SQL pentru alte scopuri. Cu toate acestea, construcția CONTINUE poate fi emulată artificial folosind buclă LOOP EXIT WHEN END LOOP, precum și un operator GOTO util, deși nepopular.

Pentru un exemplu, să deducem numerele impare de până la 20 utilizând ciclul și GOTO:

Sper că acum puteți utiliza cu ușurință circuite PL / SQL pentru a crea aplicații de bază de date pentru servere. )







Articole similare

Trimiteți-le prietenilor: