Sunteți pe pagina 1din 5

Facultatea de Cibernetic, Statistic i Informatic Economic SGBD Oracle seminarul 1

Introducere n PL/SQL Procedural Language extension to SQL


1. Caracteristici generale: Construciile PL/SQL conin structuri de control procedurale i comenzi descriptive SQL; PL/SQL este un limbaj procedural structurat pe bloc, programele putnd fi mprite n blocuri logice; Blocurile PL/SQL sunt procesate de motorul PL/SQL care poate fi rezident pe ORACLE SERVER sau pe un instrument de dezvoltare (ex.: Oracle Forms, Reports, JDeveloper etc.); Multe instrumente ORACLE au propriul motor PL/SQL (ex.: Oracle Forms, Reports, JDeveloper etc.); Tipurile de date din SQL pot fi folosite n PL/SQL; Programarea n PL/SQL este modularizat se utilizeaz blocurile care grupeaz instruciunile. 2. Blocuri PL/SQL: Orice unitate PL/SQL conine unul sau mai multe blocuri, complet separate sau imbricate. Componentele unui bloc PL/SQL: Un bloc PL/SQL este compus din pn la 3 seciuni: declarativ (opional), executabil (obligatorie) i de tratare a excepiilor (opional). DECLARE (Opional) variabile, cursori, excepii BEGIN (Obligatoriu) comenzi SQL (asigur accesul la baza de date) structuri de programare procedural PL/SQL EXCEPTION (Opional) aciuni ce se execut cnd apare o eroare END; (Obligatoriu) Observaii: comenzile SQL asigur accesul la baza de date; operaiile efectuate cu variabilele PL/SQL n cadrul instruciunilor procedurale nu presupun accesarea bazei de date;

se folosete (;) dup fiecare instruciune SQL sau instruciune de control PL/SQL; blocul PL/SQL se termin cu (;); se folosete (/) pentru a lansa un bloc anonim n bufferul SQL; o eroare n PL/SQL este tratat ca o excepie;

Facultatea de Cibernetic, Statistic i Informatic Economic SGBD Oracle seminarul 1

Tipuri de blocuri PL/SQL:


Blocuri anonime; Funcii stocate i funcii de aplicaii; Proceduri stocate i proceduri de aplicaii; Pachete; Declanatoare (triggeri) pe baza de date / de aplicaii.

Blocurile anonime: sunt nedenumite; nu sunt stocate n baza de date; se declar inline, n locul n care se dorete execuia lor; se execut n momentul rulrii. Exemplu: DECLARE v_variabila varchar2(5); BEGIN SELECT coloana INTO v_variabila FROM tabela; EXCEPTION WHEN excepie THEN aciune END; / Blocuri anonime imbricate se pot imbrica mai multe blocuri; acestea se pot eticheta cu <<eticheta_bloc>> , iar variabilele din cadrul blocurilor se pot utiliza astfel: eticheta_bloc.variabila. BEGIN . << eticheta_bloc >> DECLARE .. BEGIN .. END eticheta_bloc; END; /

Proceduri, funcii:
2

Facultatea de Cibernetic, Statistic i Informatic Economic SGBD Oracle seminarul 1

blocuri PL/SQL cu un nume; se pot stoca la nivel de ORACLE SERVER(proceduri/funcii stocate) sau la nivel de aplicaie (DEVELOPER Forms si Reports).

Exemple: CREATE [OR REPLACE] PROCEDURE nume_procedura IS . BEGIN . [EXCEPTION] . END; / CREATE [OR REPLACE] FUNCTION nume_functie RETURN tip_data IS BEGIN RETURN valoare [EXCEPTION] END; / Pachete de programe - grupeaz proceduri, funcii. Declanatori pe baza de date - blocuri PL/SQL asociate tabelelor (de baz sau virtuale) i lansate automat n execuie cnd are loc o comanda de manipulare. Declanatori de aplicaie - blocuri PL/SQL asociate unor evenimente din cadrul aplicaiei (de exemplu: deplasarea mouse-ului, apsarea unui buton) i lansate n execuie automat. 3. Operatori n PL/SQL Operator +, -, *, /, ** (op. exponenial) AND, OR, NOT <, >, =, >=, <=, <>, != BETWEEN ... AND ... IN(list) LIKE Caracteristici Operatori aritmetici Operatori logici Operatori de comparaie Operator de verificare a apartenenei la un interval Operator de verificare a apartenenei la o list de valori Operator de comparare cu un ablon
3

Facultatea de Cibernetic, Statistic i Informatic Economic SGBD Oracle seminarul 1

% - oricte caractere; _ - un caracter; IS NULL || @ & sau && := Operator care verific dac o variabil are valoarea NULL Operator de concatenare Operator de conectare la distan Operatori pentru adresarea variabilelor de substituie Operator de atribuire

4. Funcii SQL suportate n PL/SQL n cadrul instruciunilor descriptive sunt suportate toate tipurile de funcii SQL (inclusiv funciile de grup n cadrul instruciunii SELECT); Instruciunile PL/SQL: Suport funcii la nivel de nregistrare (single-row): numerice, caracter, data, de conversie etc.; NU suport funcii de grup (SUM, MIN, MAX, AVG, COUNT, STDDEV) sau funcia DECODE. De exemplu nu se pot utiliza construcii de forma: IF DECODE(...) THEN ... sau IF AVG(...) THEN ...

5. Conversii n blocurile PL/SQL PL/SQL convertete tipurile de date dinamic (de exemplu: o valoare numeric la o variabil char); conversii implicite: caracter <-> numeric si caracter <->data; conversii explicite: se utilizeaz funciile TO_DATE, TO_NUMBER, TO_CHAR.

6. Comenzi SQL suportate n PL/SQL

PL/SQL permite folosirea comenzilor de manipulare a datelor (LMD): SELECT INSERT UPDATE DELETE PL/SQL permite folosirea comenzilor de control al tranzaciilor: COMMIT ROLLBACK SAVEPOINT

Not: Un bloc PL/SQL nu este o tranzacie. Comenzile Commit/ Rollback/ Savepoint sunt independente de bloc, dar pot s apar n cadrul acestuia.

PL/SQL NU suport comenzile de definire a datelor (LDD) CREATE


4

Facultatea de Cibernetic, Statistic i Informatic Economic SGBD Oracle seminarul 1

ALTER DROP RENAME TRUNCATE PL/SQL NU suport comenzile din cadrul limbajului pentru controlul datelor (Data Control Language - DCL) GRANT REVOKE

S-ar putea să vă placă și