Sunteți pe pagina 1din 3

Exercițiul 1

Să se construiască un bloc PL/SQL prin care:


▪Se verifică existența unui client pentru care id_client este citit de
la tastatură
▪În cazul în care clientul indicat nu există, se invocă o excepție
▪În cazul în care clientul indicat există:
✓Se afișează numele respectivului client
✓Se afișează informații despre comenzile încheiate de acesta
(id_comandă, data, valoarea)
✓Se afișează numărul total de comenzi pe care acesta le-a
încheiat
Testați blocul creat folosind:
-id_client = 1 -- clientul nu există
-id_client = 120 -- clientul există și a încheiat o comandă
-id_client = 850 -- clientul există, dar nu a încheiat nicio comandă
-id_client = 108 -- clientul există și a încheiat mai multe comenzi 1
Exercițiul 2
Se consideră blocul PL/SQL:
DECLARE
CURSOR c IS SELECT nume FROM angajati;
r c%ROWTYPE;
BEGIN
BEGIN
FETCH c INTO r;
DBMS_OUTPUT.PUT_LINE('Numele este '||r.nume);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('A');
END;
DBMS_OUTPUT.PUT_LINE('B');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('C');
END;
/
2
1.Cum puteți afla care este eroarea apărută?
2.Cum puteți corecta blocul astfel încât să nu se mai genereze
eroare?
3.Ce afișează blocul după efectuarea corecturilor?
4.Completați blocul pentru a se afișa toți angajații !
5.Modificați cursorul astfel:
CURSOR c IS SELECT nume FROM angajati
WHERE id_departament=1;

Ce se afișează dacă prin cursor nu se aduc date în memorie


(comanda SELECT nu returnează nimic)?
6.Tratați printr-o excepție explicită cazul în care prin cursor nu se
returnează nimic !

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