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

Caracteristici
Operatori aritmetici
Operatori logici

<, >, =, >=, <=, <>, !=

Operatori de comparaie

BETWEEN ... AND ...

Operator de verificare a apartenenei la un interval

IN(list)
LIKE

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