A PL/SQL kód különböző környezetekben futtatható. A PL/SQL motor természetes módon helyezkedik el a szerveren és az Oracle minden esetben elhelyez PL/SQL motort a szerveren. A kliensalkalmazás SQL és PL/SQL utasításokat egyaránt el tud küldeni feldolgozásra a szerverhez. Az Oracle kliensoldali beépített fejlesztői és futtatói környezetét az SQL*Plus, illetve ennek webböngészőben használható változata, az iSQL*Plus adja.
Ugyanakkor PL/SQL motor futtatható a kliensen is. Az Oracle fejlesztőeszközei közül például a Forms és a Reports saját, beépített PL/SQL motorral rendelkezik. Mivel ezek a fejlesztői eszközök a kliensen futnak, így a motor is ott fut. A kliensoldali motor különbözik a szerveroldalitól. Egy Forms alkalmazás például tartalmazhat triggereket és alprogramokat. Ezek a kliensen futnak le, és csak az általuk tartalmazott SQL utasítások kerülnek át feldolgozásra a szerverhez, illetve ott a szerveren tárolt alprogramok futnak.
Az Oracle előfordítói (például Pro*C/C++ vagy Pro*COBOL) segítségével harmadik generációs nyelveken írt alkalmazásokba ágyazhatunk be PL/SQL kódot. Ezek az alkalmazások természetesen nem tartalmaznak PL/SQL motort, a PL/SQL utasításokat a szerveroldali motor dolgozza fel. Maguk az előfordítók viszont tartalmaznak egy olyan PL/SQL motort, amely a beágyazott PL/SQL utasítások szintaktikáját és szemantikáját ellenőrzi az előfordítás közben. Ez a motor azonban soha nem futtat PL/SQL utasításokat.
Maga az Oracle és egyéb szoftverfejlesztő cégek is kidolgoztak komplett PL/SQL fejlesztő és futtató környezeteket. Ezek integrált módon tartalmazzák mindazon szolgáltatásokat, amelyek egy PL/SQL alkalmazás hatékony és gyors megírásához és teszteléséhez szükségesek. Az Oracle ingyenes integrált adatbázis-fejlesztői környezete az Oracle SQL Developer. A termék nem része az adatbázis-kezelőnek, külön kell telepíteni, lásd [27], [29].
A továbbiakban csak az SQL*Plus, iSQL*Plus és az Oracle SQL Developer lehetőségeit tárgyaljuk röviden, az egyéb eszközök ismertetése túlmutat e könyv keretein.
Az SQL*Plus a legegyszerűbb PL/SQL fejlesztőeszköz. Lehetővé teszi SQL utasítások és név nélküli PL/SQL blokkok interaktív bevitelét. Ezek az utasítások a szerverhez kerülnek végrehajtásra, az eredmény pedig megjelenik a képernyőn. Az SQL*Plus karakteres felületet biztosít.
Ha SQL*Plusban SQL utasítást akarunk futtatni, akkor az utasítást pontosvesszővel (vagy egy / karakterrel) kell lezárnunk. Ekkor a pontosvessző nem része az utasításnak, hanem azt jelzi, hogy az utasítás teljes, elküldhető feldolgozásra. Ugyanakkor a PL/SQL esetén a pontosvessző része a szintaktikának, a kód lényeges eleme. Az SQL*Plus a DECLARE vagy BEGIN alapszavakat tekinti egy blokk kezdetének, a végét pedig egy / jelzi. Ez az SQL*Plus RUN utasítását rövidíti. Ennek hatására küldi el a teljes blokkot feldolgozásra.
A könyv egyéb fejezeteinek példáiban sokszor alkalmazzuk ezt az eszközt, ezért itt külön példát most nem adunk.
Az SQL*Plus az interaktív használat közben a begépelt információt az SQL-pufferben tárolja. Ez a puffer karakteresen szerkeszthető. A puffer tartalma elmenthető egy állományba a SAVE, onnan visszatölthető a GET paranccsal. Az állomány végrehajtható a START paranccsal. Ezen parancsok segítségével tehát egy PL/SQL blokk tárolható, módosítható, ismételten végrehajtható. Részleteket illetően lásd [8], [22].
Tárolt vagy csomagban elhelyezett eljárás SQL*Plusból meghívható az
EXEC[UTE] eljáráshívás;
SQL parancs segítségével. Ekkor az SQL*Plus a következő blokkot küldi el feldolgozásra:
BEGIN
eljáráshívás;
END;