L4 Ex 1
Ecrivez un bloc PL / SQL qui utilise un enregistrement (en utilisant TYPE) pour lire et afficher le nom et le score (PUNCTAJ) pour l’étudiant avec MATR=4705 en utilisant SELECT INTO.
DECLARE
TYPE UNSTUD IS RECORD
(NUME VARCHAR2(10), SCOR NUMBER(4));
S UNSTUD;
BEGIN
SELECT NUME, PUNCTAJ INTO S FROM STUD1 WHERE MATR=4705;
DBMS_OUTPUT.PUT_LINE(S.NUME || 'ARE PUNCTAJUL ' || S.SCOR);
END;
L4 Ex 2
Comme 1, mais l’enregistrement sera définiavec ROWTYPE
DECLARE
student_rec stud%rowtype;
BEGIN
SELECT * INTO student_rec
FROM STUD1
WHERE matr = 4705;
DBMS_OUTPUT.PUT_LINE('Nume: '|| student_rec.nume || ', Punctaj: ' || student_rec.punctaj);
END;
L4 Ex 3
Comme 2, mais le numéro d’étudiant (MATR) est dans une constante et si l’étudiant n’existe pas il est inséré (en utilisant des valeurs nulles pour les autres colonnes)
DECLARE v_stud stud%rowtype;
BEGIN
…. .
EXCEPTION …. .
Insert into stud values v_stud; END;
DECLARE
S stud%rowtype;
M constant number(4) := 1200;
BEGIN
SELECT * INTO S FROM STUD1 WHERE MATR=M;
DBMS_OUTPUT.PUT_LINE(S.NUME || ' ARE PUNCTAJUL ' || S.PUNCTAJ);
EXCEPTION
WHEN NO_DATA_FOUND THEN
S.MATR := M;
insert into STUD1 values S;
DBMS_OUTPUT.PUT_LINE('Insert ' || M);
END;
Daca exista il afiseaza, altfel il insereaza dupa S, var. de inregistrare.
L4 Ex4
Ecrivez un bloc PL / SQL qui utilise un tableau associatif S pour stocker les informations pour 3 étudiants avec avec des numéros d’inscription (MATR) donnés à l’initialisation dans un autre associative M. Pour S la clé est le numéro d’étudiant et la valeur est l’enregistrement de l’étudiant du tableau STUD. Pour M les clés sont 1, 2 et 3, et les valeurs sont les numéros d’étudiant. Au final le bloc affiche le nombre d’étudiants du S (0, 1, 2 ou 3) en fonction de la validité des numéros lus en M.
DECLARE TYPE t_stud IS TABLE OF stud%ROWTYPE INDEX
BY BINARY_INTEGER; S t_stud;
….
L4 Ex 5
Comme 4 mais au final sont affichés aussi les éléments du tableau S, en utilisant NEXT.
L4 Ex 6
Comme 5 mais au final sont affichés aussi le premier élément et le dernier élément de S et puis la liste de ses éléments dans l’ordre inverse en utilisant PRIOR.
L4 Ex 7
Comme 6, mais en plus, en utilisant DELETE(n), on doit supprimer les éléments ayant come clé la première et la dernière valeur de M, mais seulement après qu’on a teste que les éléments avec ces clés existent dans S.