Összefoglalás: ebben a bemutatóban megismerheti a PL / SQL anonymous blokkot és azt, hogyan kell végrehajtani az SQL*Plus és az SQL fejlesztői eszközökkel.
PL/SQL névtelen blokk áttekintése
a PL/SQL egy blokkszerkezetű nyelv, amelynek kódja blokkokba van rendezve. A PL / SQL blokk három részből áll: deklarációs, végrehajtható és kivételkezelő szakaszokból. Egy blokkban a végrehajtható szakasz kötelező, míg a Deklarációs és kivételkezelő szakaszok nem kötelezőek.
egy PL / SQL blokknak van neve. Függvények vagy eljárások egy példa egy megnevezett blokkra. A megnevezett blokkot az Oracle Database server tárolja, és később újra felhasználható.
a név nélküli blokk névtelen blokk. A névtelen blokk nem kerül mentésre az Oracle adatbázis-kiszolgálón, így csak egyszeri használatra szolgál. A PL / SQL névtelen blokkok azonban hasznosak lehetnek tesztelési célokra.
az alábbi kép egy PL/SQL blokk szerkezetét szemlélteti:

1) Deklarációs szakasz
a PL / SQL blokknak van egy deklarációs szakasza, ahol deklarálja a változókat, memóriát foglal el a kurzorok számára, és meghatározza az adattípusokat.
2) végrehajtható szakasz
a PL/SQL blokknak van végrehajtható szakasza. A végrehajtható szakasz a BEGIN kulcsszóval kezdődik, és a ENDkulcsszóval végződik. A végrehajtható szakasznak legalább egy végrehajtható utasítással kell rendelkeznie, még akkor is, ha a NULL utasítás nem tesz semmit.
3) kivételkezelő szakasz
a PL/SQL blokknak van egy kivételkezelő szakasza, amely a EXCEPTION kulcsszóval kezdődik. A kivételkezelés szakasz az, ahol a végrehajtás szakaszban a kód által felvetett kivételeket elkaphatja és kezelheti.
Megjegyzés: maga a blokk egy végrehajtható utasítás, ezért beágyazhat egy blokkot más blokkokba.
PL/SQL anonim blokk példa
a következő példa egy egyszerű PL/SQL anonim blokkot mutat be egy végrehajtható szekcióval.
a végrehajtható szakasz meghívja a DMBS_OUTPUT.PUT_LINE eljárást a "Hello World" üzenet megjelenítésére a képernyőn.
PL/SQL anonim blokk végrehajtása az SQL*Plus használatával
ha megvan egy anonim blokk kódja, végrehajthatja azt az SQL*Plus használatával, amely az Oracle Database által biztosított SQL utasítás és PL/SQL blokkok végrehajtására szolgáló parancssori felület.
a következő kép bemutatja, hogyan kell végrehajtani egy PL / SQL blokkot az SQL * Plus használatával:

először csatlakozzon az Oracle Database szerverhez felhasználónév és jelszó használatával.
másodszor kapcsolja be a szerver kimenetét a SET SERVEROUTPUT ON paranccsal, hogy az DBMS_OUTPUT.PUT_LINE eljárás szöveget jelenítsen meg a képernyőn.
harmadszor, írja be a blokk kódját, és írjon be egy perjelet (/), hogy utasítsa az SQL*Plus-t a blokk végrehajtására. Miután beírta a forward-perjelet ( / ), 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.
vegye figyelembe, hogy a SET SERVEROUTPUT ON parancsot minden olyan munkamenetben végre kell hajtania, amelyet az Oracle adatbázishoz csatlakoztat, hogy az üzenet megjelenjen a DBMS_OUTPUT.PUT_LINE eljárással.
az újra beírt blokk végrehajtásához használja / parancs ahelyett, hogy mindent beírna a semmiből:

ha szerkeszteni szeretné a kódblokkot, használja a edit parancsot. Az SQL * Plus a kódblokkot egy fájlba írja, majd szövegszerkesztőben nyitja meg az alábbi képen látható módon:
a fájl tartalmát a következőképpen módosíthatja:
mentse és zárja be a fájlt. A fájl tartalma a pufferbe kerül és újrafordításra kerül.
ezt követően újra végrehajthatja a kódblokkot, az új kódot fogja használni:

Execute a PL/SQL anonymous blokk segítségével SQL Developer
először csatlakozzon az Oracle Database server segítségével Oracle SQL Developer.
másodszor hozzon létre egy új SQL fájlt, amelynek neve anonymous-block.sql a C:\plsql könyvtárban található, amely tárolja a PL/SQL kódot.


harmadszor, írja be a PL/SQL kódot, majd hajtsa végre a Végrehajtás gombra kattintva vagy a Ctrl-Enter billentyűparancs megnyomásával.

további PL/SQL névtelen blokk példák
ebben a példában először deklarálunk egy l_message változót, amely az üdvözlő üzenetet tartalmazza. Ezután a végrehajtás szakaszban a DBMS_OUTPUT.PUTLINE eljárást használjuk a változó tartalmának megjelenítésére a szó szerinti karakterlánc használata helyett.
itt van a kimenet:
Hello World!
a következő névtelen blokkpélda hozzáad egy kivételkezelő részt, amely a végrehajtható szakaszban felvetett ZERO_DIVIDE kivételt fogja meg, és hibaüzenetet jelenít meg.
a hiba mesage:
ORA-01476: divisor is equal to zero
most már tudnia kell, hogyan hozhat létre PL/SQL névtelen blokkokat, és végrehajthatja azokat SQL*Plus és Oracle SQL fejlesztői eszközökkel.
- hasznos volt ez az oktatóanyag?
- igennem