EXERCIŢII RECAPITULATIVE
1. 1Să se creeze tabelele Facultăţi, Catedre şi Persoane pe baza schemei de mai sus,
ţinând cont de următoarele:
FACULTĂŢI
Nume coloană CODFAC DENFAC
Tipul restricţiei Primary key Not null
Tip dată Varchar2 Varchar2
Lungime 5 80
CATEDRE
Nume coloană CODCAT DENCAT CODFAC
Tipul restricţiei Primary key Not null Foreign key - referă tabela
Facultăţi, coloana CODFAC
Tip dată Varchar2 Varchar2 Varchar2
Lungime 7 50 5
PERSOANE
Nume CODP NUME FUNCŢI DATAANG CODCAT SALARI
coloană A U
Tipul Primary Check Foreign key - referă
restricţiei key tabela Catedre,
coloana CODCAT
Tip dată Number Varchar2 Varchar2 Date Varchar2 Number
Lungime 3 30 5 7 4
Atributul FUNCŢIA poate lua valorile: Prof (profesor), Conf (conferenţiar), Lect (lector),
Asist (asistent), Prep (preparator)
1
Codul necesar creării tabelelor şi adăugării de înregistrări se găseşte începând de la pagina 5.
1
SGBD Oracle – RECAPITULARE 1 –
FACULTĂŢI
CODFAC DENFAC
CSIE Cibernetica, Statistica si Informatica Economica
CIG Contabilitate si Informatica de Gestiune
COM Comert
CATEDRE
CODCAT DENCAT CODFAC
IE Informatica Economica CSIE
CIB Cibernetica Economica CSIE
EM Economie Matematica CSIE
STAT Statistica si Previziune Economica CSIE
PERSOANE
CODP NUME FUNCŢIA DATAANG CODCAT SALARIU
1 Ionescu Prof 12-NOV-1994 IE 2200
2 Popescu Prof CIB 2000
3 Georgescu Asist 23-APR-2002 IE 1000
4 Stanescu Conf 10-OCT-2001 EM 1400
5 Tudor Lect IE 1500
6 Zaharia Prep 04-FEB-2005 EM 900
2
SGBD Oracle – RECAPITULARE 1 –
9. Creaţi un cursor explicit prin care să se afişeze denumirea catedrei şi numărul de angajaţi
de la fiecare catedră, cu excepţia catedrei de Informatică Economică şi numai pentru acele
catedre care au mai mult de o persoană.
10. Afişaţi informaţii despre toate catedrele şi despre angajaţii din fiecare dintre acestea.
Folosiţi un cursor pentru a încărca denumirea catedrelor şi un cursor parametrizat pentru
încărcarea numelor angajaţilor din cadrul fiecărei catedre.
Întrebările de tip grilă pot avea un singur răspuns corect, nici unul sau mai multe!
11. Din următoarea structură de bloc PL/SQL:
DECLARE
secţiune declarativă
BEGIN
secţiune executabilă
EXCEPTION
secţiune tratare erori
END;
a) sunt obligatorii toate secţiunile;
b) sunt opţionale toate secţiunile;
c) lipsesc alte secţiuni;
d) este obligatorie doar secţiunea executabilă;;
e) este obligatorie doar secţiunea declarativă.
DECLARE
i NUMBER(3);
n NUMBER;
BEGIN
FOR i IN 1 .. 15 LOOP
n:=i MOD 2;
IF n=0 THEN
INSERT INTO mesaje VALUES (i, 'par');
3
SGBD Oracle – RECAPITULARE 1 –
ELSE
INSERT INTO mesaje VALUES (i, 'impar');
END IF;
COMMIT;
END;
/
Precizaţi răspunsurile corecte. Explicaţi!
a) se realizează o ciclare cu numărător;
b) se realizează adăugarea de noi atribute în tabela Mesaje;
c) nu se respectă structura de bloc PL/SQL;
d) este greşită.
14. Într-un bloc PL/SQL o excepţie se defineşte în mod explicit (de către utilizator) prin
comanda:
a) RAISE nume_excepţie;
b) nume_excepţie EXCEPTION;
c) WHEN nume_excepţie THEN;
d) nu se poate.
4
SGBD Oracle – RECAPITULARE 1 –
5
SGBD Oracle – RECAPITULARE 1 –