Documente Academic
Documente Profesional
Documente Cultură
--si sa se pastreze numele lor intr-o tabela indexata. Sa se afiseze valorile elementelor colectiei.
DECLARE
t tab_indexata;
BEGIN
UPDATE angajati
WHERE id_angajat IN (SELECT id_angajat FROM comenzi WHERE EXTRACT (YEAR FROM data) = 2009)
DBMS_OUTPUT.PUT_LINE(t(i));
END LOOP;
END;
DECLARE
den_dep departamente.denumire_departament%TYPE,
sal_med NUMBER
);
t tab_indexata;
BEGIN
GROUP BY denumire_departament;
END LOOP;
END;
--3. Realizaţi o funcție care să returneze valoarea comenzilor date de clientul indicat drept parametru
set serveroutput on
RETURN NUMBER
AS
v_valoare NUMBER;
BEGIN
SELECT sum(r.pret*r.cantitate)
INTO v_valoare
WHERE c.id_client=p_id;
IF v_valoare IS NULL
else
return v_valoare;
END IF;
END;
set serveroutput on
declare
v_valoare number;
begin
v_valoare:=Calcul_comenzi(12);
DBMS_OUTPUT.PUT_LINE(v_valoare);
end;
--4. Realizati o procedură care să afișeze topul primilor n clienți (identificați prin nume_client)
FROM clienti
v_total NUMBER;
BEGIN
FOR v IN c LOOP
END LOOP ;
END;
execute top_clienti(5);
--** o procedură care returnează numele, vechimea și venitul total (salariu + comision) pentru angajatul
al cărui id este dat ca parametru;
--** o procedură care mărește cu 2 salariul angajatului al cărui id este dat ca parametru.
--În ambele proceduri de mai sus, să se verifice situația în care angajatul indicat nu există (invocând o
excepție în acest caz) prin apelul unei funcții private, creată în acest scop.
END;
FROM angajati
WHERE id_angajat=p_id;
RETURN TRUE;
EXCEPTION
END;
BEGIN
NULL;
END;
BEGIN
NULL;
END;
END;