A relációs adatbázis-kezelő rendszerek ma már egyeduralkodó (és szabvány) adatkezelő nyelve az SQL. A PL/SQL nyelv az Oracle SQL kibővítése, igaz a PL/SQL nem tartalmazza az SQL teljes utasításkészletét, csak azon utasításokat, melyek az adatkezelő eljárások során nagyobb szereppel rendelkeznek. Lehetőség van például az adatkezelő utasításoknak, a kurzor szerkezetnek és a tranzakció-kezelő utasításoknak a használatára, de hiányoznak belőle például az adatdefiníciós és a védelmet szabályzó utasítások.
A PL/SQL nyelv tartalmazza az alapvető vezérlési elemeket, így a WHILE ciklust és az IF elágazást is. Továbbá létrehozhatunk saját memóriaváltozókat, melyekkel tárolhatók a közbenső számítási eredmények.
Mivel a PL/SQL alkalmazása során az adatkezelő utasítások nem egyenkénti SQL utasítások formájában kerülnek az adatbázis-kezelőhöz végrehajtásra, ezért a végrehajtási sebesség is jelentősen javítható. Az eljárások feldolgozása ugyanis programegységekben, úgynevezett blokkokban történik. A blokkban helyet foglaló SQL utasítások együttesét pedig hatékonyabban lehet optimalizálni, mint az egyenkénti SQL utasításokat.
Továbbá a PL/SQL nagy előnye, hogy igen szorosan kapcsolódik az Oracle rendszerhez, annak több komponensébe is integrálható. Ilyenek például az SQLPlus, SQLForms és még több másik komponens is. A nyelv használata független az alkalmazott konfigurációtól, operációs rendszertől, s csak a futó adatbázis-kezelőtől függ a konkrét felépítése, formátuma.
Összefoglalva a PL/SQL előnyeit:
A PL/SQL története
A nyelvet először 1992-ben adta ki az Oracle, mint saját fejlesztésű SQL befogadónyelvet. Az Oracle6.0 adatbázis-kezelő rendszer szerves részeként. A cég ezen szokását a későbbiekben is megtartotta és az újabb verziókat az adatbázis-kezelő alkalmazásaival karöltve adta és adja ki. A tervezésnél az ADA nyelvből indultak ki, de a C++-tól is átvettek egy-két elemet.
1.0 : Oracle 6 PL/SQL 1.0 Debütálás.
1.1 : Oracle 6 PL/SQL 1.1 Tárolt eljárások támogatása a kliensprogramok felé.
2.0 : Oracle 7 PL/SQL 2.0 Tárolt eljárások, függvények, csomagok, felhasználói rekord típus, PL/SQL táblák és a csomagok bővítése.
2.1 : Oracle 7.1 PL/SQL 2.1 Felhasználói altípusok, tárolt függvények használata SQL kifejezésekben, dinamikus SQL és a DBMS_SQL csomag.
2.2 : Oracle 7.2 PL/SQL 2.2 Kurzor változók támogatása, a DBMS_JOB package megjelenése.
2.3 : Oracle 7.3 PL/SQL 2.3 Távoli függőség kezelés, fájlkezelés.
8.0 : Oracle 8 PL/SQL 8.0 LOB-ok (Large Objects), változó hosszú tömbök és beágyazott táblák támogatása.
8.1 : Oracle 8i PL/SQL 8.1 Natív Dinamikus SQL, NOCOPY paraméter opció.
9.0 : Oracle 9i PL/SQL 9i XML támogatás, HTTP cookie támogatás PL/SQL-ben, öröklődés támogatása a PL/SQL-ben, CASE utasítás bevezetése, új adattípusok: timestamp, interval, unichar, univarchar2 és uniclob.
10.1 : Oracle10g PL/SQL 10.1 BINARY_DOUBLE, BINARY_FLOAT adattípusok bevezetése a tudományos számításokhoz, alprogramok túlterhelése különböző numerikus típusokkal paraméterezve, új műveletek a beágyazott tábla típushoz, fordítási idejű warning-ok (lehetséges hatékonysági problémák jelzésére), reguláris kifejezések támogatása.