PL/SQL blok: struktura, sintaksa i anonimni primjer
โก Pametni saลพetak
PL/SQL blok je osnovna jedinica koja grupira PL/SQL i SQL instrukcije tako da se izvrลกavaju zajedno, a ne redak po redak. Svaki blok ima odjeljak za deklaraciju, izvrลกavanje i rukovanje iznimkama, a blokovi su ili anonimni ili imenovani.

ล to je PL/SQL blok?
U PL/SQL-u, kod se ne izvrลกava u jednolinijskom formatu; uvijek se izvrลกava grou.ping kod u jedan element koji se naziva blok. U ovom vodiฤu nauฤit ฤete o tim blokovima.
Blokovi sadrลพe i PL/SQL i SQL instrukcije. Sve ove instrukcije se izvrลกavaju kao cjelina, a ne jedna po jedna.
Blok struktura
PL/SQL blokovi imaju unaprijed definiranu strukturu u kojoj je grupiran kod. U nastavku su navedeni razliฤiti dijelovi PL/SQL bloka:
- Odjeljak deklaracije
- Izvrลกni dio
- Odjeljak za rukovanje iznimkama
Donja slika ilustrira razliฤite dijelove PL/SQL blokova i njihov redoslijed.
Odjeljak deklaracije
Ovo je prvi dio PL/SQL bloka i nije obavezan. To je dio u kojem se deklariraju varijable, kursori, iznimke, potprogrami, pragma instrukcije i kolekcije potrebne u bloku. Joลก nekoliko karakteristika ovog dijela:
- Ovaj odjeljak je opcionalan i moลพe se preskoฤiti ako nisu potrebne deklaracije.
- Trebao bi biti prvi dio u PL/SQL bloku, ako postoji.
- Poฤinje kljuฤnom rijeฤi 'DECLARE' za okidaฤe i anonimne blokove. Za ostale potprograme ova kljuฤna rijeฤ nije prisutna; umjesto toga, dio nakon imena potprograma oznaฤava odjeljak deklaracije.
- Uvijek bi trebao slijediti dio za izvrลกenje.
Odjel za izvrลกenje
Izvrลกni dio je glavni i obvezni dio koji zapravo izvrลกava kod napisan u njemu. Buduฤi da PL / SQL oฤekuje izvrลกne naredbe, ovaj blok ne moลพe biti prazan i mora imati barem jednu valjanu izvrลกnu liniju. Joลก nekoliko karakteristika ovog dijela:
- Moลพe sadrลพavati i PL/SQL kod i SQL kod.
- Moลพe sadrลพavati jedan ili viลกe blokova unutar sebe kao ugnijeลพฤene blokove.
- Poฤinje kljuฤnom rijeฤi 'BEGIN'.
- Nakon toga treba slijediti ili 'END' ili odjeljak za rukovanje iznimkama, ako postoji.
Odjeljak za rukovanje iznimkama
Iznimke su neizbjeลพne greลกke koje se javljaju tijekom izvoฤenja, a za njihovo rjeลกavanje Oracle pruลพa odjeljak za obradu iznimki u blokovima. Ovaj odjeljak takoฤer moลพe sadrลพavati PL/SQL naredbe i nije obavezan.
- Ovo je dio gdje se obraฤuje iznimka nastala u bloku izvrลกenja.
- To je posljednji dio PL/SQL bloka.
- Kontrola iz ove sekcije nikada se ne moลพe vratiti u izvrลกni blok.
- Poฤinje kljuฤnom rijeฤi 'IZNIMKA'.
- Uvijek treba slijediti kljuฤna rijeฤ 'END'.
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 uvijek treba stajati znak '/', koji ลกalje informaciju kompajleru o kraju bloka.
Vrste PL/SQL blokova
PL/SQL blokovi su uglavnom dvije vrste:
- Anonimni blokovi
- Imenovani blokovi
Dva su usporeฤena u nastavku prije nego ลกto je svaki opisan.
| Aspekt | Anonimni blok | Imenovani blok |
|---|---|---|
| Ima ime | Ne | Da |
| Pohranjeno u bazi podataka | Ne | Da, kao objekt |
| Poฤinje sa | IZJAVITE ili POฤNITE | STVORITI |
| Za viลกekratnu upotrebu | Samo ista sesija | Poziv je moguฤ u bilo koje vrijeme |
Anonimni blokovi
Anonimni blokovi su PL/SQL blokovi koji nemaju dodijeljeno ime. Potrebno ih je kreirati i koristiti u istoj sesiji jer nisu pohranjeni na posluลพitelju kao objekti baze podataka.
Buduฤi da nisu pohranjeni u bazi podataka, ne zahtijevaju zaseban korak kompilacije. Piลกu se i izvrลกavaju izravno, a kompilacija i izvrลกavanje odvijaju se u jednom procesu. Joลก nekoliko karakteristika:
- Ovi blokovi nemaju referentni naziv.
- Poฤinju kljuฤnom rijeฤi 'DECLARE' ili 'BEGIN'.
- Buduฤi da nemaju referentno ime, ne mogu se pohraniti za kasniju upotrebu i moraju se kreirati i izvrลกiti u istoj sesiji.
- Mogu pozivati โโdruge imenovane blokove, ali poziv anonimnog bloka nije moguฤ jer nema referencu.
- Mogu sadrลพavati ugnijeลพฤeni blok koji je imenovan ili anoniman, a mogu se ugnijeลพditi i unutar bilo kojeg bloka.
- Mogu imati sva tri dijela, od kojih je dio za izvrลกenje obavezan, a druga dva su opcionalna.
Imenovani blokovi
Imenovani blokovi imaju specifiฤno i jedinstveno ime. Pohranjeni su kao objekti baze podataka na posluลพitelju, tako da se na njih moลพe pozivati โโili ih se moลพe koristiti sve dok su prisutni. Proces kompajliranja za imenovane blokove odvija se odvojeno kada se kreiraju kao objekti baze podataka. Joลก nekoliko karakteristika:
- Ovi blokovi se mogu pozvati iz drugih blokova.
- Struktura bloka je ista kao i anonimni blok, osim ลกto nikada ne poฤinje s 'DECLARE'. Umjesto toga, poฤinje s 'CREATE', ลกto upuฤuje kompajler da ga stvori kao objekt baze podataka.
- Ovi blokovi mogu biti ugnijeลพฤeni unutar drugih blokova i mogu sadrลพavati ugnijeลพฤene blokove.
- Imenovani blokovi su u osnovi dvije vrste:
- Postupak
- funkcija
Viลกe o ovim imenovanim blokovima moลพete saznati u vodiฤu za postupci i funkcije.


