Procedural Language/Structured Query Language (PL/SQL) este extensia procedurala a limbajului SQL.
PL/SQL este un limbaj de programare sofisticat care asigură accesarea datelor unei baze de date relaţionale orientate obiect şi permite gruparea unei mulţimi de comenzi într-un bloc unic de tratare a datelor. Programul este format din unul sau mai multe blocuri care pot conţine blocuri încuibărite.
PL/SQL include atât instrucţiuni SQL pentru manipularea datelor şi pentru gestiunea tranzacţiilor, cât şi instrucţiuni proprii. Limbajul combină construcţiile procedurale ale unui limbaj LG3 cu puterea şi flexibilitatea lui SQL (LG4).
Combinaţia a generat un limbaj puternic pentru modelarea aplicaţiilor complexe.
PL/SQL extinde SQL prin construcţii specifice limbajelor procedurale (definirea variabilelor, declararea tipurilor, utilizarea structurilor de control, implementarea procedurilor şi funcţiilor, introducerea tipurilor obiect şi metodelor
etc.). PL/SQL oferă posibilităţi moderne de tratare a informaţiei: încapsularea datelor, analiza specială a erorilor, mascarea informaţiei, orientarea obiect. Posibilităţile lui SQL sunt folosite pentru un acces rafinat la date, iar facilităţile oferite de PL/SQL sunt folosite pentru fluxul controlului procesării datelor.
Dintre funcţionalităţile limbajului PL/SQL care determină ca acesta să fie frecvent utilizat se remarcă următoarele facilităţi:
-
-
- integrarea comenzilor SQL de bază;
- integrarea cu server-ul Oracle şi cu utilitare Oracle;
- oferirea unui suport pentru programarea orientată obiect;
- asigurarea securităţii informaţiei;
- definirea şi gestiunea blocurilor de instrucţiuni;
- gestiunea variabilelor, constantelor şi a cursoarelor;
- modularizarea programelor (subprograme, pachete);
- implementarea şi utilizarea declanşatorilor;
- utilizarea structurilor de control fundamentale;
- detectarea şi gestiunea erorilor de execuţie şi a situaţiilor excepţionale;
- dezvoltarea de aplicaţii Web
-
PL/SQL este o tehnologie utilizată de server-ul Oracle şi de anumite utilitare Oracle. Blocurile PL/SQL sunt transmise unui motor PL/SQL şi procesate (compilate şi executate) de acesta. Motorul PL/SQL poate să se afle pe server-ul Oracle sau într-un utilitar, iar utilizarea sa depinde de unde se invocă PL/SQL. Multe utilitare Oracle (inclusiv Developer/2000) au propriul lor motor PL/SQL care este independent de motorul prezent pe server-ul Oracle.
Blocurile PL/SQL pot fi executate pe staţia client fără interacţiune cu server-ul sau în întregime pe server. Când blocurile PL/SQL sunt referite dintr-un program PRO*, din iSQL*Plus, sau de către Server Manager, motorul PL/SQL de pe server-ul Oracle va procesa aceste blocuri. Acesta descompune blocul în instrucţiuni SQL şi le trimite executorului de instrucţiuni SQL (SQL Statement Executor) de pe server-ul Oracle. Fără PL/SQL, instrucţiunile SQL ar fi procesate separat, fiecare la un moment dat, fiecare implicând un apel la server-ul Oracle.
Restul comenzilor (procedurale) sunt procesate de către executorul instrucţiunilor procedurale (PSE – Procedural Statement Executor) care este în motorul PL/SQL. PSE poate procesa datele care sunt locale aplicaţiei, reducându-se astfel activitatea de transfer spre server-ul Oracle şi numărul de cursoare solicitate. În felul acesta, este necesar un singur transfer pentru a trimite blocul din aplicaţie către server.
O aplicaţie bază de date poate fi structurată în trei părţi:
- interfaţa utilizator (utilizatorul introduce anumite informaţii şi obţine nişte rezultate în urma executării aplicaţiei);
- aplicaţia logică efectivă;
- baza de date.
Există două modele pentru proiectarea unei aplicaţii bază de date:
- modelul client-server (two-tier);
- modelul three-tier.
Multe dintre aplicaţiile baze de date sunt construite folosind modelul clasic client-server, descris succint anterior pentru PL/SQL. Modelul este caracterizat de cele două componente: client şi server. Client-ul mânuieşte interfaţa, iar server-ul conţine baza de date. Aplicaţia logică este scindată între client şi server. De remarcat această caracteristică fundamentală a modelului că aplicaţia comunică direct cu server-ul. Există un motor PL/SQL pe server, iar în anumite cazuri şi pe client.
Dacă motorul PL/SQL este pe server, atunci aplicaţia (care poate fi scrisă în Pro*C, JDBC, OCI sau alte limbaje) care rezidă pe client trimite cereri la un server de date. Cererile sunt rezolvate utilizând SQL. Diferite cereri SQL pot fi grupate
într-un bloc PL/SQL şi trimise ca o singură entitate server-ului.
Vom considera un scenariu în care există două motoare PL/SQL, unul pe staţia client (local) şi un motor PL/SQL pe server. De exemplu, un declanşator ce se execută pe staţia client şi care apelează un subprogram stocat în baza de date. În
acest caz, blocurile anonime sunt trimise motorului PL/SQL de pe staţia client, care procesează local comenzile procedurale. Comenzile neprocedurale din interiorul blocului sunt trimise executorului de instrucţiuni SQL de pe server. De asemenea, apelurile procedurilor care sunt stocate pe server sunt trimise tot motorului de pe server pentru procesare.
Fortune Rabbit: quem acha que ele está consistente?
Mahjong Ways 2: quem prefere cascade pays?
Fortune Tiger modo turbo: quem costuma usar auto spin?
Fortune Tiger auto spin 5000 giros: quem aguenta?
Fortune Rabbit respin infinito: quem já pegou 8 seguidos?
Mahjong Ways 2: quem prefere cascade pays?
Jogo do Tigrinho ao vivo no Pix: quem ganhou big win e sacou em menos de 5 minutos?
Panathinaikos 2-2 Viktoria Plzen 2026 Europa League dramatic draw
Fortune Tiger cartinha misteriosa: quantas vezes você já pegou x10?
Jogo do Tigrinho no Pix R$1: teste grátis com chance de bônus real
Jogo do Tigrinho ao vivo chat: já ganhou bônus interagindo com outros jogadores?
PG Soft 2026: qual slot você joga mais: Tigrinho, Coelho, Touro ou outro?
Jogo do Tigrinho Pix R$15: ganha 90 giros + 30% extra no reload diário!
Jogo do Tigrinho no Pix R$1: teste grátis com chance de bônus real
PG Soft no celular 5G: big win em qualquer lugar do Brasil – já aconteceu?
Fortune Tiger com turbo ligado: quem aguenta 500 giros seguidos sem parar?
PG Soft no Brasil 2026: Pix, suporte em português e giros grátis todo dia
Fortune Rabbit respins chain: recorde pessoal de quantos giros seguidos você já fez?
Fortune Ox touro dourado: já ativou hold & win com 15+ símbolos e ganhou tudo?
Fortune Tiger x Fortune Rabbit: qual você joga mais em 2026? Vote nos comentários!