PL/ SQL blokk: STRUCTURE, Syntax, ANONYMUS Példa

Mi az a PL/SQL blokk?

A PL/SQL-ben a kód nem egysoros formátumban kerül végrehajtásra, hanem mindig úgy fut le, hogy a kódot egyetlen blokkba csoportosítja. Ebben az oktatóanyagban ezekről a blokkokról fogsz tanulni.

A blokkok PL/SQL-t és SQL-utasítást is tartalmaznak. Mindezek az utasítások egy egészként kerülnek végrehajtásra, nem pedig egyetlen utasítás végrehajtására egyszerre.

Blokkstruktúra

A PL/SQL blokkok előre meghatározott struktúrával rendelkeznek, amelyben a kódot csoportosítani kell. Az alábbiakban a PL/SQL blokkok különböző részei láthatók.

  1. Nyilatkozat szakasz
  2. Végrehajtási rész
  3. Kivétel-kezelés rész

Az alábbi kép a különböző PL/SQL blokkokat és azok szakaszrendjét szemlélteti.

Blokkstruktúra

Nyilatkozat szakasz

Ez a PL/SQL blokkok első része. Ez a szakasz egy opcionális rész. Ez az a szakasz, ahol a blokkban szükséges változók, kurzorok, kivételek, alprogramok, pragma utasítások és gyűjtemények deklarálása történik meg. Az alábbiakban ennek a résznek néhány további jellemzője látható.

  • Ez a szakasz nem kötelező, és kihagyható, ha nincs szükség deklarációra.
  • Ennek a PL/SQL blokk első szakaszának kell lennie, ha van.
  • Ez a szakasz a 'DECLARE' kulcsszóval kezdődik a triggerek és az anonim blokkok esetében. Más alprogramoknál ez a kulcsszó nem lesz jelen. Ehelyett az alprogramnév-definíció utáni rész a deklarációs szakaszt jelöli.
  • Ezt a szakaszt mindig a végrehajtási szakasznak kell követnie.

Végrehajtási szakasz

A végrehajtási rész a fő és kötelező rész, amely ténylegesen végrehajtja a benne írt kódot. Mivel a PL / SQL ettől a blokktól várja a végrehajtható utasításokat, ez nem lehet üres blokk, azaz legalább egy érvényes futtatható kódsornak kell lennie. Az alábbiakban ennek a résznek néhány további jellemzője látható.

  • Ez PL/SQL kódot és SQL kódot is tartalmazhat.
  • Ez egy vagy több blokkot tartalmazhat beágyazott blokkként.
  • Ez a szakasz a „BEGIN” kulcsszóval kezdődik.
  • Ezt a szakaszt a „VÉGE” vagy a Kivételek kezelése szakasznak kell követnie (ha van)

Kivétel-kezelési részleg

A kivétel elkerülhetetlen a programban, amely futási időben és ennek kezelésére fordul elő Oracle Kivétel-kezelési részt biztosított blokkokban. Ez a szakasz PL/SQL utasításokat is tartalmazhat. Ez a PL/SQL blokkok opcionális része.

  • Ez az a szakasz, ahol a végrehajtási blokkban felvetett kivételt kezeljük.
  • Ez a szakasz a PL/SQL blokk utolsó része.
  • Az ebből a szakaszból származó vezérlés soha nem térhet vissza a végrehajtási blokkhoz.
  • Ez a szakasz a "KIÍRÁS" kulcsszóval kezdődik.
  • Ezt a részt mindig az „END” kulcsszónak kell követnie.

Az 'END' kulcsszó a PL/SQL blokk végét jelzi.

PL/SQL blokk szintaxis

Az alábbiakban a PL/SQL blokkstruktúra szintaxisa látható.

PL/SQL blokk szintaxis

DECLARE --optional
    <declarations>

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

EXCEPTION --optional 
    <exception handles>

END;   --mandatory
/

Jegyzet: A blokkot mindig a '/' jelnek kell követnie, amely elküldi a fordítónak a blokk végéről szóló információt.

A PL/SQL blokkok típusai

A PL/SQL blokkok főként két típusból állnak.

  1. Névtelen blokkok
  2. Blocks néven

Névtelen blokkok

Az anonim blokkok olyan PL/SQL blokkok, amelyekhez semmilyen név nincs hozzárendelve. Ezeket ugyanabban a munkamenetben kell létrehozni és használni, mert nem tárolódnak a szerveren adatbázis-objektumként.

Mivel nem kell tárolniuk az adatbázisban, nincs szükségük a fordítási lépésekre. Közvetlenül íródnak és hajtanak végre, a fordítás és a végrehajtás pedig egyetlen folyamatban történik.

Az alábbiakban az Anonymous blokkok néhány további jellemzője található.

  • Ezeknek a blokkoknak nincs megadva hivatkozási neve.
  • Ezek a blokkok a „DECLARE” vagy a „BEGIN” kulcsszóval kezdődnek.
  • Mivel ezeknek a blokkoknak nincs hivatkozási neve, ezek későbbi célra nem tárolhatók. Ezeket ugyanabban a munkamenetben kell létrehozni és végrehajtani.
  • Meghívhatják a többi elnevezett blokkot, de az anonim blokkot nem lehet hívni, mivel annak nincs hivatkozása.
  • Lehet benne beágyazott blokk, amely lehet elnevezett vagy névtelen. Bármilyen blokkba is beágyazható.
  • Ezek a blokkok tartalmazhatják a blokk mindhárom szakaszát, amelyekben a végrehajtási szakasz kötelező, a másik két szakasz opcionális.

Elnevezett blokkok

Az elnevezett blokkok sajátos és egyedi elnevezéssel rendelkeznek. Ezek adatbázis-objektumként kerülnek tárolásra a szerveren. Mivel adatbázis-objektumként érhetők el, hivatkozni lehet rájuk vagy felhasználhatók mindaddig, amíg jelen vannak a kiszolgálón. A megnevezett blokkok fordítási folyamata külön történik, miközben adatbázis-objektumként hozzuk létre őket.

Az alábbiakban a Named blokkok néhány további jellemzője látható.

  • Ezek a blokkok más blokkokból is hívhatók.
  • A blokk felépítése megegyezik az anonim blokkokkal, azzal a különbséggel, hogy soha nem a 'DECLARE' kulcsszóval kezdődik. Ehelyett a 'CREATE' kulcsszóval kezdődik, amely arra utasítja a fordítót, hogy adatbázis-objektumként hozza létre.
  • Ezek a blokkok beágyazhatók más blokkokba. Beágyazott blokkokat is tartalmazhat.
  • Az elnevezett blokkok alapvetően két típusból állnak:
  1. Eljárás
  2. Funkció

Ezekről a megnevezett blokkokról a későbbi oktatóanyag „Eljárás” és „Funkció” témaköreiben többet megtudunk.

Összegzésként

Ezt az oktatóanyagot követően ismernie kell a PL/SQL blokkokat és típusait, a blokkok különböző szakaszait és azok használatát. A megnevezett PL/SQL blokkok részletes leírását a későbbi oktatóanyag tartalmazza.