Sunteți pe pagina 1din 3

Blocuri anonime n PL/SQL.

Gestiunea
variabilelor. Blocuri imbricate
S se realizeze i testeze urmtoarele blocuri anonime n PL/SQL:
1. Afiai-v numele complet;

begin
dbms_output.put_line('aaa');

End;

2. Afiai data care va fi peste exact 4 luni:


a. Utilizai doar o constant;
BEGIN
DBMS_OUTPUT.PUT_LINE('11 Iulie 2017');
END;

b. Folosii o variabil iniializat la declarare

declare
v_date DATE := add_months(sysdate,4);
begin
dbms_output.put_line(v_date);
end;

c. Folosii o variabil calculat n seciunea de execuie

DECLARE
v_date DATE;
BEGIN
DBMS_OUTPUT.PUT_LINE(v_date + 122);
END;

declare
v_date date := sysdate;
begin
select add_months(v_date,4) into v_date from dual;
dbms_output.put_line(v_date);
end;
d. Utilizai o interogare

DECLARE
v_date DATE :=SYSDATE;
BEGIN
SELECT ADD_MONTHS(SYSDATE,4) INTO v_date FROM
dual;
DBMS_OUTPUT.PUT_LINE(v_date);
END;

3. Sa se defineasca variabile si constante de diferite tipuri, cu diferite optiuni (NOT


NULL, DEFAULT), apoi sa se afiseze valoarea lor in cadrul sectiunii de executie. Se
vor afisa propozitii inteligibile
4. Facei o copie a tabelei EMPLOYEES sub numele ANGAJATI (n SQL). Analizai
continutul tabelei, apoi afiai numele, prenumele si salariul lunar al Managerului
general (n PL/SQL).
5. Definii variabile/constante de mai multe tipuri de dat. Folosii cte o funcie pentru
fiecare variabil i afiai rezultatul. Mai intai utilizai funciile n cadrul unor interogri
SQL, apoi fr utilizarea clauzei SELECT n cadrul blocului de execuie
6. Realizai 3 blocuri imbricate superior, intermediar i inferior iar n cadrul fiecruia
utilizai cte o variabil. Testai vizibilitatea i domeniul acestor variabile.
7. Realizai 3 blocuri imbricate, iar n cadrul fiecruia utilizai variabile cu acelai nume,
dar valori diferite. Afiai n cadrul fiecrui bloc valoarea tuturor variabilelor,
calificndu-le prin numele blocului doar pe acelea care solicita acest lucru. Pentru a
ti din ce bloc s-a fcut afiarea, s se precizeze numele blocului. Ex. Valori din
blocul superior
Sa se realizeze blocuri PL/SQL anonime cu urmatoarele functionalitati:
1. Angajati-va astazi n cadrul tabelei ANGAJATI ca reprezentant de vnzari, cu
salariul de 30.000$. Completati toate atributele obligatorii si asigurati unicitatea cheii primare
2. Accidental, introduceti din nou datele Dv., dar cu un alt ID
3. Stergeti cea de-a doua nregistrare adaugata si cresteti cu 15% salariul pentru
nregistrarea ramasa
4. Testati instructiunea MERGE pentru a actualiza tabela EMPLOYEES cu noul angajat
introdus
5. Modificati tabela ANGAJATI prin adaugarea unui nou atribut Monthly_Wage
Number(5)
6. Afisati numele, prenumele si salariul Dv., informatiile fiind extrase din tabela
ANGAJATI
7. Extrageti aceleasi informatii pentru toti reprezentantii de vnzari
8. Actualizati cu +10% salariile celor din administratie si afisati numarul angajatilor care
au fost bonificati
9. Testati instructiunile TCL (COMMIT, ROLLBACK, SAVEPOINT) pe tabela ANGAJATI.
Structuri de programare n PL/SQL
Creati blocuri anonime pentru rezolvarea urmatoarelor exercitii:
1. Testati daca un numar memorat ntr-o variabila este par;
2. Se da transcrierea n litere pentru numerele de la 1 la 9. Avem o variabila care poate
contine un numar ntreg ntre 11 si 20, reprezentnd sume n lei. Afisati suma n lei n litere
(ca la banca/posta), gasind cteva reguli de compunere ale numeralelor si folosind
transcrierile cifrelor de la 1 la 9. Se va rezolva cu structuri IF;
3. Rezolvati aceeasi problema cu o structura CASE;
4. Apoi cu o expresie CASE;
5. O persoana s-a nascut ntre anii 1950-2000. n functie de anul nasterii sa se afiseze
mesaje precum: Domnul X s-a nascut n anii 80. Testati functionalitatea secventelor ELSIF,
n cazul n care le schimbati ordinea;
6. Calculati factorialul unui numar memorat ntr-o variabila. Se vor folosi toate variantele
de structuri iterative cunoscute;
7. Sa se introduca n cadrul tabelei Angajati 4 nregistrari: Id-urile sa fie urmatoarele 4
numere luate secvential, numele si prenumele vor fi generice Nume/Prenume concatenat
cu id-ul. Toti au fost angajati acum o luna ca reprezentanti de vnzari cu salariul minim al
acestei categorii, caruia i se adauga un spor generat aleatoriu ntre 200 si 500$.

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