PL/SQL plokk: struktuur, süntaks ja anonüümne näide

⚡ Nutikas kokkuvõte

PL/SQL-plokk on põhiüksus, mis rühmitab PL/SQL-i ja SQL-i käske, et neid täidetaks koos, mitte rida-realt. Igal plokil on deklareerimise, täitmise ja erandite käsitlemise sektsioon ning plokid on kas anonüümsed või nimetatud.

  • 🧱 Põhiidee: Code on rühmitatud plokkideks, mis töötavad tervikuna, segades protseduurilist loogikat SQL-iga.
  • 📝 Deklaratsiooni osa: Valikuline; deklareerib plokis kasutatavad muutujad, kursorid, erandid ja alamprogrammid.
  • ▶ ️ Täitmise sektsioon: Kohustuslik; algab BEGIN-iga ja sisaldab vähemalt ühte käivitatavat lauset.
  • 🛡️ Erandi sektsioon: Valikuline; algab EXCEPTION-iga ja käsitleb käitusaja vigu.
  • ???? ️ Kaks tüüpi: Anonüümsed plokid on nimetud ja käivitatakse üks kord; nimega plokid salvestatakse andmebaasiobjektidena.
  • 🔁 Nimega plokid: Protseduurid ja funktsioonid on nimetatud plokid, mida saab korduvalt kutsuda.
  • Terminaator: END sulgeb ploki ja kaldkriips saadab selle kompilaatorile.

PL/SQL ploki struktuur ja süntaks

Mis on PL/SQL-plokk?

PL/SQL-is ei käivitata koodi üherealise formaadiga; seda käivitab alati group.ping koodi üheks elemendiks, mida nimetatakse plokiks. Selles õpetuses saate teada nende plokkide kohta.

Plokid sisaldavad nii PL/SQL- kui ka SQL-käske. Kõiki neid käske täidetakse tervikuna, mitte ükshaaval.

Ploki struktuur

PL/SQL-plokkidel on eelnevalt määratletud struktuur, millesse kood on rühmitatud. Allpool on toodud PL/SQL-ploki erinevad osad:

  1. Deklaratsiooni jaotis
  2. Täitmise osa
  3. Erandid-käitlemine

Allolev pilt illustreerib erinevaid PL/SQL ploki sektsioone ja nende järjekorda.

PL/SQL ploki sektsioonid ja järjekord

Deklaratsiooni osa

See on PL/SQL-ploki esimene osa ja see on valikuline. Selles osas deklareeritakse plokis vajalikud muutujad, kursorid, erandid, alamprogrammid, pragma-käsud ja kollektsioonid. Selle osa veel mõned omadused:

  • See jaotis on valikuline ja selle võib vahele jätta, kui deklaratsioone pole vaja.
  • See peaks olema PL/SQL-ploki esimene osa, kui see on olemas.
  • See algab päästikute ja anonüümsete plokkide puhul märksõnaga 'DECLARE'. Teiste alamprogrammide puhul see märksõna puudub; selle asemel tähistab deklaratsiooni sektsiooni alamprogrammi nimele järgnev osa.
  • Sellele peaks alati järgnema teostusosa.

Täitmise osa

Täitmisosa on peamine ja kohustuslik osa, mis tegelikult käivitab selle sees kirjutatud koodi. Kuna PL / SQL ootab käivitatavaid lauseid, see plokk ei saa olla tühi ja peab sisaldama vähemalt ühte kehtivat käivitatavat rida. Selle osa veel mõned omadused:

  • See võib sisaldada nii PL/SQL-koodi kui ka SQL-koodi.
  • See võib pesastatud plokkidena sisaldada ühte või mitut plokki.
  • See algab märksõnaga „BEGIN”.
  • Sellele peaks järgnema kas 'END' või erandite käsitlemise osa, kui see on olemas.

Erandi käsitlemise sektsioon

Erandid on vältimatud vead, mis esinevad käitusajal, ja nendega tegelemine Oracle pakub plokkides erandite käsitlemise sektsiooni. See sektsioon võib sisaldada ka PL/SQL-lauseid ja see on valikuline.

  • Selles osas käsitletakse täitmisplokis tekkinud erandit.
  • See on PL/SQL-ploki viimane osa.
  • Selle jaotise juhtimine ei saa kunagi täitmisplokki tagasi pöörduda.
  • See algab märksõnaga „ERAND”.
  • Sellele peaks alati järgnema märksõna „END”.

Märksõna 'END' tähistab PL/SQL-ploki lõppu.

PL/SQL ploki süntaks

Allpool on toodud PL/SQL ploki struktuuri süntaks.

PL/SQL ploki süntaks

DECLARE --optional
<declarations>

BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>

EXCEPTION --optional
<exception handles>

END; --mandatory
/

Märge: Plokile peaks alati järgnema '/', mis saadab kompilaatorile infot ploki lõpu kohta.

PL/SQL-ploki tüübid

PL/SQL plokke on peamiselt kahte tüüpi:

  1. Anonüümsed plokid
  2. Nimetatud plokid

Enne kummagi kirjeldamist võrreldakse neid kahte allpool lühidalt.

Aspekt Anonüümne plokk Nimega plokk
Tal on nimi Ei Jah
Salvestatud andmebaasis Ei Jah, objektina
Alustab DEKLAREERI või ALUSTAMA LUUA
Korduvalt kasutatav Ainult sama seanss Helistatav igal ajal

Anonüümsed plokid

Anonüümsed plokid on PL/SQL plokid, millele pole nime määratud. Need tuleb luua ja kasutada samas seansis, kuna neid ei salvestata serveris andmebaasiobjektidena.

Kuna neid ei salvestata andmebaasis, ei vaja nad eraldi kompileerimisetappi. Need kirjutatakse ja käivitatakse otse ning kompileerimine ja käivitamine toimuvad ühe protsessina. Veel mõned omadused:

  • Nendel plokkidel puudub viitenimi.
  • Need algavad märksõnaga „DECLARE” või „BEGIN”.
  • Kuna neil puudub viitenimi, ei saa neid hilisemaks kasutamiseks salvestada ning need tuleb luua ja käivitada sama seansi jooksul.
  • Nad saavad kutsuda teisi nimega plokke, kuid anonüümsele plokile helistamine pole võimalik, kuna sellel puudub viide.
  • Need võivad sisaldada pesastatud plokki, mis on nimetatud või anonüümne, ja need võivad olla pesastatud ka mis tahes ploki sisse.
  • Neil võivad olla kõik kolm osa, millest teostusosa on kohustuslik ja kaks ülejäänud on valikulised.

Nimega plokid

Nimega plokkidel on kindel ja unikaalne nimi. Neid salvestatakse serveris andmebaasiobjektidena, seega saab neile viidata või neid kasutada seni, kuni nad on olemas. Nimega plokkide kompileerimisprotsess toimub eraldi, kui need luuakse andmebaasiobjektidena. Veel mõned omadused:

  • Neid plokke saab kutsuda teistest plokkidest.
  • Ploki struktuur on sama mis anonüümsel plokil, välja arvatud see, et see ei alga kunagi käsuga 'DECLARE'. Selle asemel algab see käsuga 'CREATE', mis annab kompilaatorile käsu luua see andmebaasiobjektina.
  • Neid plokke saab teiste plokkide sisse pesastada ja need võivad sisaldada ka pesastatud plokke.
  • Nimega plokke on põhimõtteliselt kahte tüüpi:
  1. Menetlus
  2. funktsioon

Nende nimetatud plokkide kohta leiate lisateavet juhendist protseduurid ja funktsioonid.

KKK

Ainult teostusosa, mis algab BEGIN-iga ja lõpeb END-iga. Deklaratsiooni ja erandite käsitlemise osad on valikulised ja need võib välja jätta, kui neid pole vaja.

Anonüümsel plokil pole nime, seda ei salvestata ja see töötab samas seansis. Nimega plokk, näiteks protseduur või funktsioon, salvestatakse andmebaasiobjektina ja seda saab korduvalt kutsuda.

Sellistes tööriistades nagu SQL*Plus annab kaldkriips omal real kompilaatorile teada, et plokk on valmis ja see tuleks käivitada. Ilma selleta ootab tööriist edasist sisendit.

Jah. Tehisintellekt saab loogika mähkida CREATE PROCEDURE'i päisesse, lisada parameetreid ja deklaratsioone oma kohale paigutada. Testi tulemust, kuna salvestatud versioon võib vajada selgesõnalisi parameetrirežiime ja veakäsitlust.

Jah. Deklaratsiooni- ja erandiosa on sõltumatud valikud. Plokk võib alata BEGIN-ist, deklaratsioone vahele jätta ja siiski sisaldada enne END-i EXCEPTION-osa, et püüda kinni käitusaja vigu.

Võta see postitus kokku järgmiselt: