Összefoglaló: ebben az oktatóanyagban megismerkedhetünk a PL/SQL anonim blokkal, és megtudhatjuk, hogyan lehet azt SQL*Plus és SQL Developer eszközökkel végrehajtani.
PL/SQL anonim blokk áttekintés
A PL/SQL egy blokkstruktúrájú nyelv, amelynek kódja blokkokba van szervezve. Egy PL/SQL blokk három szakaszból áll: a deklarációs, a futtatható és a kivételkezelő szakaszokból. Egy blokkban a végrehajtható szakasz kötelező, míg a deklarációs és a kivételkezelő szakaszok opcionálisak.
A PL/SQL blokknak neve van. A Functions vagy Procedures egy példa a megnevezett blokkokra. A névvel ellátott blokk az Oracle Database kiszolgálóban tárolódik, és később újra felhasználható.
A név nélküli blokk anonim blokk. Az anonim blokk nem kerül elmentésre az Oracle Database kiszolgálóban, így csak egyszeri használatra szolgál. A PL/SQL anonim blokkok azonban hasznosak lehetnek tesztelési célokra.
A következő ábra egy PL/SQL blokk felépítését szemlélteti:
1) Deklarációs szakasz
A PL/SQL blokknak van egy deklarációs szakasza, ahol a változókat deklaráljuk, memóriát rendelünk a kurzorokhoz, és adattípusokat definiálunk.
2) Végrehajtható szakasz
A PL/SQL blokknak van egy végrehajtható szakasza. A végrehajtható szakasz a BEGIN
kulcsszóval kezdődik és a END
kulcsszóval végződik. A végrehajtható szakasznak legalább egy végrehajtható utasítást kell tartalmaznia, még akkor is, ha az a NULL
utasítás, amely nem csinál semmit.
3) Kivételkezelő szakasz
A PL/SQL blokknak van egy kivételkezelő szakasza, amely a EXCEPTION
kulcsszóval kezdődik. A kivételkezelő szakasz az a hely, ahol a végrehajtási szakaszban lévő kód által felvetett kivételeket elkapjuk és kezeljük.
Megjegyezzük, hogy a blokk maga is egy végrehajtható utasítás, ezért a blokkot más blokkokba is beágyazhatjuk.
PL/SQL anonim blokk példa
A következő példa egy egyszerű PL/SQL anonim blokkot mutat, amely egy végrehajtható szakaszt tartalmaz.
A végrehajtható szakasz meghívja a DMBS_OUTPUT.PUT_LINE
eljárást a "Hello World"
üzenet megjelenítéséhez a képernyőn.
PL/SQL anonim blokk végrehajtása az SQL*Plus használatával
Amikor már rendelkezik egy anonim blokk kódjával, akkor azt az SQL*Plus segítségével hajthatja végre, amely az Oracle Database által az SQL utasítások és PL/SQL blokkok végrehajtásához biztosított parancssori felület.
A következő képen látható, hogyan lehet egy PL/SQL-blokkot az SQL*Plus segítségével végrehajtani:
Először is csatlakozzon az Oracle Database kiszolgálóhoz egy felhasználónév és jelszó segítségével.
Másodszor, kapcsolja be a kiszolgáló kimenetét a SET SERVEROUTPUT ON
paranccsal, hogy a DBMS_OUTPUT.PUT_LINE
eljárás megjelenítse a szöveget a képernyőn.
Harmadszor, írja be a blokk kódját, és írjon be egy átlós írásjelet ( /
), hogy utasítsa az SQL*Plus-t a blokk végrehajtására. Miután beírta az előrevágott kötőjelet (/), az SQL*Plus végrehajtja a blokkot, és megjeleníti a Hello World
üzenetet a képernyőn az ábrákon látható módon.
Megjegyezzük, hogy a DBMS_OUTPUT.PUT_LINE
eljárás segítségével megjelenő üzenet megjelenítéséhez a SET SERVEROUTPUT ON
parancsot minden olyan munkamenetben végre kell hajtania, amelyben csatlakozik az Oracle adatbázishoz.
A beírt blokk újbóli végrehajtásához a /
parancsot használja ahelyett, hogy mindent a nulláról gépelne be:
Ha a kódblokkot szerkeszteni szeretné, használja a edit
parancsot. Az SQL*Plus kiírja a kódblokkot egy fájlba, és megnyitja azt egy szövegszerkesztőben, ahogy az a következő képen látható:
A fájl tartalmát a következőképpen módosíthatja:
Azután mentse el és zárja be a fájlt. A fájl tartalma kiíródik a pufferbe és újrafordításra kerül.
Ezután újra futtathatja a kódblokkot, az új kódot fogja használni:
PL/SQL anonymous block végrehajtása az SQL Developer segítségével
Először is csatlakozzon az Oracle adatbázis-kiszolgálóhoz az Oracle SQL Developer segítségével.
Második lépésként hozzon létre egy új, anonymous-block.sql
nevű SQL-fájlt, amely a C:\plsql
könyvtárban található, és amely a PL/SQL kódot fogja tárolni.
Harmadszor, írja be a PL/SQL kódot, és hajtsa végre az Execute gombra kattintva vagy a Ctrl-Enter billentyűparancs megnyomásával.
Még több PL/SQL anonim blokk példa
Ebben a példában először deklarálunk egy változót l_message
, amely az üdvözlő üzenetet tartalmazza. Majd a végrehajtási szakaszban a DBMS_OUTPUT.PUTLINE
eljárást használjuk arra, hogy a szó szerinti karakterlánc helyett ennek a változónak a tartalmát jelenítsük meg.
Itt a kimenet:
Hello World!
A következő anonim blokkpélda egy kivételkezelő szakaszt ad hozzá, amely elkapja a végrehajtási szakaszban felmerült ZERO_DIVIDE
kivételt, és hibaüzenetet jelenít meg.
A hibaüzenet:
ORA-01476: divisor is equal to zero
Most már tudnia kell, hogyan hozzon létre névtelen PL/SQL blokkokat és hajtsa végre azokat az SQL*Plus és az Oracle SQL Developer eszközökkel.
- Hasznos volt ez a bemutató?
- IgenNem