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.