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.
A streamer com 80 viewers parou de jogar Phoenix Rises depois do patch do Q1. Voltou semana passada. Outro jogo agora, ele diz.
Quanto tempo vocês dão pro Wizdom Wonders antes de rotacionar?
Semana bombando no Lucky Neko.
A professora de salvador jura por depósito instantâneo pra saque rápido nas sessões de Fortune Dragon.
Um regular do fórum chamou o Mahjong Ways 2 de “o único honesto” — meio brincando, meio não.
Clipe do Fortune Ox chegando.
Fortune Mouse só caiu o bônus no giro 412 — antes disso, nada.
A protected bankroll gave freedom for better decisions.
Fortune Rabbit feature buy decisions are being modeled before clicking.
Beginner audiences prefer slots with simpler reading.
Demo mode of Fortune Rabbit is the entry point for risk-aware testers.
The week trend: less emotion, more strategy on Wild Wild Riches entries.
Players combining gain target with stop loss closed the day more stable.
the chat is comparing time-to-bonus more than just the final multiplier.
Players who alternated Lucky Neko and Fortune Mouse reported more balanced sessions.
Caishen Wins respected stop-loss outperformed forced recovery attempts.
Some platforms are highlighting weekly tournaments with ranking for PG Soft slots.
Fortune Dragon stays as a novelty pick for variety beyond the Tiger and Rabbit pattern.
Fortune Mouse promotional spins fill the appetite without burning capital.
RTP claims are being verified by independent session logs.