Interacţiunea cu serverul Oracle

In blocuri se pot folosi instrucţiuni pentru gestiunea datelor din bazele de date: INSERT, UPDATE, DELETE şi pentru controlul tranzacţiilor: COMMIT, ROLLBACK, SAVEPOINT.
Instrucţiunile pentru definirea/modificarea/ştergerea unui tabel (CREATE/ALTER/DROP TABLE) sunt permise numai cu ajutorul pachetului DBMS_SQL sau cu instrucţiunea execute immediate.

In blocuri instrucţiunea SELECT se poate folosi sub forma:

SELECT lista_expresii INTO {lista_variabile | variabila_inregistrare}
FROM lista_surse_de_date [WHERE conditie]
[diverse clauze];

In clauza INTO se precizează o listă de variabile sau o variabilă înregistrare, declarate anterior, unde se vor pune valorile singurei înregistrări determinată de instrucţiunea SELECT. Fiecare coloană din select trebuie să aibă o variabilă asociată în listă, iar tipurile (coloana şi variabila corespunzătoare) să coincidă ca tip de dată.
Dacă înstructiunea SELECT furnizează mai mult de o înregistrare, sau nu furnizează înregistrări, atunci se generează o eroare.

Exemplu:

--se foloseste tabelul creat astfel: CREATE GLOBAL TEMPORARY TABLE valori(a varchar2(200));
variable x char(200)
DECLARE
  nr NUMBER := 0; 
  sp CONSTANT CHAR(40) := '                                        ';
  s char(3) :='43';
BEGIN
    INSERT INTO valori 
    select TRIM(nume) || ' ' || trim(prenume) || '-' || cnp FROM studenti
    WHERE sectia=s
    ORDER BY nume,prenume;
    select count(*) into nr from valori;
    :x := 'Nr.de studenti: ' || TO_CHAR(nr,'9999');
END;
/
SELECT * FROM valori;
print x

Instrucţiunea "execute immediate"