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.
- Nyilatkozat szakasz
- Végrehajtási rész
- 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.
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ó.
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.
- Névtelen blokkok
- 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:
- Eljárás
- 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.