Documente Academic
Documente Profesional
Documente Cultură
(p_an NUMBER)
AS
WHERE c.id_comanda=r.id_comanda
BEGIN
FOR v IN c LOOP
DBMS_OUTPUT.PUT_LINE(v.id_comanda||'-'||v.valoare);
END LOOP;
END;
SET SERVEROUTPUT ON
EXECUTE VALOARE_COMENZI(2018)
/*2. Construiți funcția Calcul_varsta_client care să returneze varsta clientului al cărui id este
RETURN NUMBER
AS
v_varsta NUMBER;
BEGIN
SELECT ROUND((SYSDATE-data_nastere)/365)
INTO v_varsta
FROM clienti
WHERE id_client=p_id;
RETURN v_varsta;
EXCEPTION
END;
--apel
DECLARE
v_varsta NUMBER;
BEGIN
v_varsta := calcul_varsta_client(101);
ELSE DBMS_OUTPUT.PUT_LINE(v_varsta);
END IF;
END;
/*3. Apelați funcția calcul_varsta_client în cadrul unei proceduri, Afisare_clienti, prin care se
AS
FROM clienti;
v_id clienti.id_client%TYPE;
v_nume clienti.nume_client%TYPE;
v_varsta NUMBER;
BEGIN
OPEN c;
LOOP
v_varsta:=calcul_varsta_client(v_id);
DBMS_OUTPUT.PUT_LINE(v_nume||' are varsta '||v_varsta);
END LOOP;
CLOSE c;
END;
EXECUTE afisare_clienti;
salariul unui angajat. Valoarea cu care se face modificarea şi identificatorul angajatului vor fi
primite ca parametri.
Trataţi printr-o excepţie cazul în care nu există angajatul specificat (deci comanda de
AS
nu_exista_angajat EXCEPTION;
BEGIN
UPDATE angajati
IF SQL%ROWCOUNT=0
ELSE DBMS_OUTPUT.PUT_LINE('ok');
END IF;
EXCEPTION
END;
/
SET SERVEROUTPUT ON
EXECUTE mareste_salariul(100,10)
/*5. Creati functia Numar_ang care sa calculeze numarul de angajati din departamentul al
Tratati prin exceptii cazul in care nu exista angajati in departamentul specificat, precum si pe
RETURN NUMBER
AS
BEGIN
FROM departamente
WHERE id_departament=p_id;
FROM angajati
WHERE id_departament=p_id;
END;