PL/ SQL blok: STRUKTURA, Sintaksa, ANONIMNO Primjer
ล to je PL/SQL blok?
U PL/SQL kod se ne izvrลกava u formatu jednog retka, veฤ se uvijek izvodi grupiranjem koda u jedan element koji se zove blokovi. U ovom ฤete vodiฤu nauฤiti o tim blokovima.
Blokovi sadrลพe i PL/SQL kao i SQL instrukcije. Sve ove instrukcije bit ฤe izvrลกene kao cjelina, a ne izvrลกavanje jedne po jedne instrukcije.
Blok struktura
PL/SQL blokovi imaju unaprijed definiranu strukturu u kojoj se kod grupira. Ispod su razliฤiti dijelovi PL/SQL blokova.
- Odjeljak deklaracije
- Izvrลกni dio
- Odjeljak za rukovanje iznimkama
Donja slika ilustrira razliฤite PL/SQL blokove i njihov redoslijed sekcija.
Odjeljak deklaracije
Ovo je prvi odjeljak PL/SQL blokova. Ovaj odjeljak je neobavezan dio. Ovo je odjeljak u kojem ฤe se deklarirati deklaracija varijabli, kursora, izuzetaka, potprograma, pragma instrukcija i kolekcija koje su potrebne u bloku. Ispod je joลก nekoliko karakteristika ovog dijela.
- Ovaj odreฤeni odjeljak nije obavezan i moลพe se preskoฤiti ako nisu potrebne deklaracije.
- Ovo bi trebao biti prvi odjeljak u PL/SQL bloku, ako postoji.
- Ovaj odjeljak poฤinje kljuฤnom rijeฤi 'DECLARE' za okidaฤe i anonimni blok. Za ostale potprograme ova kljuฤna rijeฤ neฤe biti prisutna. Umjesto toga, dio nakon definicije naziva potprograma oznaฤava odjeljak deklaracije.
- Nakon ovog odjeljka uvijek treba slijediti odjeljak za izvrลกenje.
Odjel za izvrลกenje
Izvrลกni dio je glavni i obvezni dio koji zapravo izvrลกava kod koji je napisan unutar njega. Buduฤi da je PL / SQL oฤekuje izvrลกne naredbe iz ovog bloka, to ne moลพe biti prazan blok, tj. trebao bi sadrลพavati barem jednu vaลพeฤu liniju izvrลกnog koda u sebi. Ispod je joลก nekoliko karakteristika ovog dijela.
- Ovo moลพe sadrลพavati i PL/SQL kod i SQL kod.
- To moลพe sadrลพavati jedan ili viลกe blokova unutar sebe kao ugnijeลพฤeni blok.
- Ovaj odjeljak poฤinje kljuฤnom rijeฤi 'BEGIN'.
- Nakon ovog odjeljka treba slijediti ili 'KRAJ' ili odjeljak za rukovanje iznimkama (ako postoji)
Odjeljak za rukovanje iznimkama
Iznimka je neizbjeลพna u programu koji se pojavljuje tijekom izvoฤenja i rjeลกavanju toga Oracle je osigurao odjeljak za rukovanje iznimkama u blokovima. Ovaj odjeljak takoฤer moลพe sadrลพavati PL/SQL izjave. Ovo je izborni odjeljak PL/SQL blokova.
- Ovo je odjeljak u kojem se obraฤuje iznimka pokrenuta u bloku izvrลกenja.
- Ovaj odjeljak je zadnji dio PL/SQL bloka.
- Kontrola iz ove sekcije nikada se ne moลพe vratiti u izvrลกni blok.
- Ovaj odjeljak poฤinje kljuฤnom rijeฤi 'IZUZETAK'.
- Nakon ovog odjeljka uvijek treba slijediti kljuฤna rijeฤ 'KRAJ'.
Kljuฤna rijeฤ 'END' oznaฤava kraj PL/SQL bloka.
Sintaksa PL/SQL bloka
Ispod je sintaksa PL/SQL blok strukture.
DECLARE --optional
<declarations>
BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>
EXCEPTION --optional
<exception handles>
END; --mandatory
/
Biljeลกka: Iza bloka bi uvijek trebao biti '/' koji ลกalje informaciju kompajleru o kraju bloka.
Vrste PL/SQL blokova
PL/SQL blokovi su uglavnom dvije vrste.
- Anonimni blokovi
- Imenovani blokovi
Anonimni blokovi
Anonimni blokovi su PL/SQL blokovi koji nemaju dodijeljena imena. Moraju se kreirati i koristiti u istoj sesiji jer neฤe biti pohranjeni na posluลพitelju kao objekti baze podataka.
Buduฤi da ih ne treba pohranjivati โโu bazu podataka, ne trebaju im koraci kompilacije. Oni se piลกu i izvode izravno, a kompilacija i izvoฤenje odvijaju se u jednom procesu.
Ispod je joลก nekoliko karakteristika anonimnih blokova.
- Ovi blokovi nemaju naveden referentni naziv.
- Ovi blokovi poฤinju kljuฤnom rijeฤi 'DECLARE' ili 'BEGIN'.
- Buduฤi da ovi blokovi nemaju nikakvo referentno ime, ne mogu se pohraniti za kasniju svrhu. Moraju se izraditi i izvrลกiti u istoj sesiji.
- Oni mogu pozivati โโdruge imenovane blokove, ali poziv anonimnom bloku nije moguฤ jer nema nikakve reference.
- Moลพe imati ugnijeลพฤeni blok u sebi koji moลพe biti imenovan ili anoniman. Takoฤer se moลพe ugnijeลพditi u bilo koje blokove.
- Ovi blokovi mogu imati sva tri odjeljka bloka, u kojem je dio za izvoฤenje obavezan, a druga dva odjeljka su izborna.
Imenovani blokovi
Imenovani blokovi imaju specifiฤno i jedinstveno ime za sebe. Oni su pohranjeni kao objekti baze podataka na posluลพitelju. Buduฤi da su dostupni kao objekti baze podataka, na njih se moลพe pozivati โโili ih koristiti sve dok su prisutni na posluลพitelju. Proces kompilacije za imenovane blokove odvija se odvojeno tijekom njihovog stvaranja kao objekata baze podataka.
Ispod je joลก nekoliko karakteristika imenovanih blokova.
- Ovi blokovi se mogu pozvati iz drugih blokova.
- Struktura bloka je ista kao kod anonimnog bloka, osim ลกto nikada neฤe zapoฤeti kljuฤnom rijeฤi 'DECLARE'. Umjesto toga, poฤet ฤe s kljuฤnom rijeฤi 'CREATE' koja nalaลพe kompajleru da ga stvori kao objekt baze podataka.
- Ovi blokovi mogu biti ugnijeลพฤeni unutar drugih blokova. Takoฤer moลพe sadrลพavati ugnijeลพฤene blokove.
- Imenovani blokovi su u osnovi dvije vrste:
- Postupak
- funkcija
Nauฤit ฤemo viลกe o tim imenovanim blokovima u temama "Procedura" i "Funkcija" u kasnijem vodiฤu.
Rezime
Nakon ovog vodiฤa trebali biste biti svjesni PL/SQL blokova i njihovih vrsta, razliฤitih dijelova blokova i njihove upotrebe. Detaljan opis imenovanih PL/SQL blokova bit ฤe pokriven u kasnijem vodiฤu.


