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.

  1. Odjeljak deklaracije
  2. Izvrลกni dio
  3. Odjeljak za rukovanje iznimkama

Donja slika ilustrira razliฤite PL/SQL blokove i njihov redoslijed sekcija.

Blok struktura

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.

Sintaksa PL/SQL bloka

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.

  1. Anonimni blokovi
  2. 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:
  1. Postupak
  2. 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.

Saลพmite ovu objavu uz: