Sunteți pe pagina 1din 2

Laborator PL/SQL.

Cursori. Exceptii.

A
Creaţi un bloc PL/SQL care afişează un calificativ pentru salariul fiecărui angajat (foarte
bun, bun, destul de bun, deloc bun) după valoarea salariului înregistrat în tabelă.

B
Calculaţi şi afişaţi salariul mediu şi numărul de angajaţi pentru fiecare departament.

C
Creaţi un bloc PL/SQL care utilizează un cursor parametrizat pentru afişarea, mai întâi, a
şirului iniţialelor angajaţilor departamentului 10, iar apoi şirul cu ultimele litere ale
angajaţilor departamentului 20.

D
Creaţi o tabelă de comentarii (două coloane: nume şi observatii) unde înregistraţi, cu
ajutorul unui bloc PL/SQL, comentarii la salariul fiecărui angajat, faţă de salariul mediu a
departamentului lui, de exemplu :
salariul lui X este cel putin dublul salariului mediu
salariul lui X este cel putin de 3 ori salariul mediu
salariul lui X nu este mai mult ca dublul salariului mediu
salariul lui X este mai mic decat salariul mediu

E
Creaţi un bloc PL/SQL care:
1. citeşte două valori introduse la tastatură reprezentând codul unui client (corespunzator
tabelei CLIENT) şi codul unui produs (corespunzator tabelei PROD),
2. afişează cantitatea din acel produs cumparat de acel client
3. scrieţi codul PL/SQL care să permită generarea fiecăreia din excepţiile următoare :
NO_DATA_FOUND
TOO_MANY_ROWS
INVALID_NUMBER
precum şi ultima alternativă, pentru toate celelalte erori.
Prin execuţii repetate, cu diferite valori, faceţi să se declanşeze secvenţele de tratare a
excepţiilor.

G
Creaţi un bloc PL/SQL pentru modificarea unui pret pentru un produs (indicat prin
denumire). Controlaţi că noul pret nu este superior celui vechi; dacă da, atunci declanşaţi o
excepţie.
În acelaşi timp, prevedeţi secvenţe pentru tratarea altor excepţii: produsul nu exista
(NO_DATA_FOUND), există mai multe produse cu aceeaşi denumire
(TOO_MANY_ROWS).
H
Creaţi o tabelă, MESSAGE, cu o singură coloană, de tip text.
Craţi un bloc PL/SQL care citeşte o valoare de la tastatură, reprezentând un salariu, şi apoi
caută în tabela emp, angajaţii cu acel salariu.
1. dacă sunt returnate mai multe linii, să se înscrie în tabela MESSAGE textul prea mulţi
angajaţi cu salariul ….
2. dacă nu este returnată nicio linie, lorsque aucune ligne n'est retournée, să se înscrie în
tabela MESSAGE textul niciun angajat cu salariul ….
3. la apariţia unei alte erori, să se înscrie în tabela MESSAGE textul altă eroare este
prezentă; eroarea numărul …. care indică …..
Verificaţi prin execuţii succesive, cu diferite valori.