Mi az a PL / SQL blokk?
A PL / SQL esetében a kódot nem egysoros formátumban hajtják végre, hanem mindig úgy, hogy a kódot egyetlen blokk nevű elembe csoportosítja. Ebben az oktatóanyagban megismerheti ezeket a blokkokat.
A blokkok mind PL / SQL, mind SQL utasításokat tartalmaznak. Ezeket az utasításokat egészben hajtják végre, nem pedig egyetlen utasítást hajtanak végre egyszerre.
Ebben az oktatóanyagban megtudhatja:
- Mi az a PL / SQL blokk?
- Blokk felépítése
- PL / SQL blokk szintaxis
- A PL / SQL blokk típusai
Blokk felépítése
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ő szakaszai találhatók.
- Nyilatkozat szakasz
- Végrehajtás szakasz
- Kivétel-kezelés szakasz
Az alábbi kép szemlélteti a különböző PL / SQL blokkokat és azok szakaszainak sorrendjét.
Nyilatkozati szakasz
Ez a PL / SQL blokkok első szakasza. Ez a szakasz választható rész. Ebben a szakaszban deklaráljuk a blokkban szükséges változók, kurzorok, kivételek, alprogramok, pragma utasítások és gyűjtemények deklarációját. Az alábbiakban még néhány jellemzője van ennek a résznek.
- Ez a szakasz választható, és kihagyható, ha nincs szükség deklarációkra.
- Ez legyen a PL / SQL blokk első szakasza, ha van ilyen.
- Ez a szakasz a 'DECLARE' kulcsszóval kezdődik az indítók és az anonim blokkoláshoz. Más alprogramoknál ez a kulcsszó nem lesz jelen. Ehelyett az alprogramnév meghatározása utáni rész jelöli a deklarációs szakaszt.
- Ezt a szakaszt mindig követnie kell a végrehajtási szakasznak.
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 futtatható utasításokat, ez nem lehet üres blokk, vagyis legalább egy érvényes futtatható kódsorral kell rendelkeznie. Az alábbiakban még néhány jellemzője van ennek a résznek.
- Ez tartalmazhat PL / SQL kódot és SQL kódot is.
- Ez egy vagy több blokkot tartalmazhat beágyazott blokkként.
- Ez a szakasz a „BEGIN” kulcsszóval kezdődik.
- Ezt a szakaszt követnie kell az „END” vagy a kivételkezelés szakasznak (ha van)
Kivételkezelő rész:
A kivétel elkerülhetetlen a futás közben fellépő programban, és ennek kezelése érdekében az Oracle blokkokban biztosított egy kivételkezelő részt. Ez a szakasz tartalmazhat PL / SQL utasításokat is. Ez a PL / SQL blokkok opcionális szakasza.
- Ez a szakasz kezeli a végrehajtási blokkban felvetett kivételt.
- 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 blokkba.
- Ez a szakasz a „EXCEPTION” kulcsszóval kezdődik.
- Ezt a szakaszt mindig követnie kell az „END” kulcsszóval.
Az „END” kulcsszó jelöli a PL / SQL blokk végét.
PL / SQL blokk szintaxis
Az alábbiakban látható a PL / SQL blokkszerkezet szintaxisa.
DECLARE --optionalBEGIN --mandatory EXCEPTION --optional END; --mandatory/
Megjegyzés: A blokkot mindig a / jelnek kell követnie, amely a blokk végére vonatkozó információkat elküldi a fordítónak.
A PL / SQL blokk típusai
A PL / SQL blokkok főleg kétféle típusúak.
- Névtelen blokkok
- Blocks néven
Névtelen blokkok:
Az anonim blokkok PL / SQL blokkok, amelyekhez nincs hozzárendelve név. Ugyanabban a munkamenetben kell létrehozni és használni őket, mert nem tárolódnak a szerveren adatbázis objektumokként.
Mivel nem kell tárolniuk az adatbázisban, nincs szükség fordítási lépésekre. Közvetlenül írják és hajtják végre, az összeállítás és a végrehajtás egyetlen folyamatban történik.
Az alábbiakban további néhány névtelen blokk jellemzője található.
- Ezeknek a blokkoknak nincs megadva hivatkozási név.
- Ezek a blokkok a „DECLARE” vagy a „BEGIN” kulcsszóval kezdődnek.
- Mivel ezek a blokkok nem rendelkeznek referencia névvel, ezeket későbbi célokra nem lehet tárolni. Ezeket ugyanazon a munkameneten kell létrehozni és végrehajtani.
- Hívhatják a többi megnevezett blokkot, de anonim blokkhoz való hívás nem lehetséges, mivel nincs hivatkozása.
- Beágyazott blokk lehet benne, amely lehet névvel vagy névtelenül. Bármely blokkba be is ágyazható.
- Ezeknek a blokkoknak lehet a blokk mindhárom szakasza, amelyben a végrehajtási szakasz kötelező, a másik két szakasz választható.
Elnevezett blokkok:
Az elnevezett blokkoknak egyedi és egyedi nevük van. Ezeket adatbázis-objektumokként tárolják a szerveren. Mivel adatbázis-objektumokként érhetők el, hivatkozni lehet rájuk, vagy felhasználni őket, amíg a szerveren jelen vannak. A megnevezett blokkok fordítási folyamata külön történik, miközben adatbázis-objektumként hozza létre őket.
Az alábbiakban még néhány megnevezett blokk jellemzője található.
- Ezeket a blokkokat más blokkokból is meghívhatjuk.
- A blokk felépítése megegyezik egy névtelen blokkéval, azzal a különbséggel, hogy soha nem a „DECLARE” kulcsszóval kezdődik. Ehelyett a „CREATE” kulcsszóval kezdődik, amely utasítja a fordítót, hogy hozza létre adatbázis objektumként.
- Ezek a blokkok beágyazhatók más blokkokba. Beágyazott blokkokat is tartalmazhat.
- A megnevezett blokkok alapvetően kétféle típusúak:
- Eljárás
- Funkció
Összegzés
Az oktatóanyag után 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 tárgyalja.