Ö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 END
kulcsszó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