Structura PL/SQL
PL/SQL este un limbaj structurat pe blocuri.
Programele PL/SQL sunt scrise sub forma blocurilor de cod, blocuri în
care pot sa apara interogari sau comenzi de manipulare a datelor.
Blocurile pot fi fara nume (anonime) - atunci
când nu fac parte din schema bazei de date ci se gasesc pe disc sub
forma unor fisiere ASCII (.txt, .sql, etc), - sau pot fi blocuri cu nume
(denumite), stocabile în dictionarul bazei de date. Dintre
blocurile cu nume, cele mai utilizate sunt: procedurile (procedures),
functiile (functions), pachete (packages) si
declansatoare (triggers).
Un
bloc este structurat pe trei sectiuni: declaratii, zona executabila si
exceptii.
Sectiunea DECLARE
contine definitia variabilelor si a altor obiecte cum ar fi constantele
sau cursoarele. Este optionala pentru un bloc PL/SQL.
Sectiunea PROCEDURE
contine comenzile SQL si comenzile de control conditional al fluxului de
executie. Este obligatorie într-un bloc PL/SQL.
Sectiunea EXCEPTION
indica blocului PL/SQL cum sa gestioneze erorile specifice si exceptiile
definite de utilizator.
Observatie : Un
bloc este o unitate logica de cod PL/SQL ce contine cel putin o sectiune
PROCEDURE si optional sectiuni DECLARE respectiv EXCEPTION.
Structura de baza a unui bloc PL/SQL:
BEGIN-- optional, indica
începutul blocului
DECLARE-- optional, definirea
variabilelor, constantelor, cursoarelor etc
BEGIN-- obligatoriu,
indica începutul sectiunii de proceduri
EXCEPTION-- optional,
indica începutul sectiunii de exceptii
END-- obligatoriu, indica
finalul sectiunii de proceduri
END-- optional, indica
finalul unui bloc
Comentarii
Comentariile
care se întind pe o linie sunt precedate de cratima dubla, iar cele
care se desfasoara pe mai multe linii sunt marcate de perechile de
simboluri: /* si */.
-- Comentariu
pe o linie
/* Comentariu
pe
mai
multe linii*/
Forma generala a unui bloc PL/SQL
DECLARE
sectiunea de declaratii
-- variabile si tipuri, constante, cursoare si subprograme locale
BEGIN
sectiunea executabila
-- este sectiunea principala obligatorie
EXCEPTION
sectiunea de manipulare
a exceptiilor -- instructiuni de manipulare a exceptiilor
END;
Exemplu
Blocurile Incluse
Anumite blocuri pot fi incluse in altele, in orice fel in
care instructiunea o permite ( nu se recomanda sa se includa blocuri
in cadrul unor bucle). Partea executabila a unui bloc poate fi sparta in
blocuri mai mici, si de asemenea sectiunea EXCEPTION poate include alte
blocuri.
Exemplu:
BEGIN
--
actiuni in bucla principala
DECLARE
-- declaratii de obiecte
BEGIN
-- actiuni ale blocului
EXCEPTION
-- tratarea exceptiilor din din acest bloc.
END;
-- alte
actiuni in blocul principal
EXCEPTION
WHEN cond_de_manifest_erori THEN
BEGIN
-- manuire a erorilor in blocul propriu
EXCEPTION
-- ce se intampla daca tratarea unei erori
-- merge gresit !!
END;
END;
Sectiunea DECLARE este optionala ; exemplul prezentat
contine citeva blocuri fare sectiunea DECLARE.