Advertisement
Guest User

Untitled

a guest
May 8th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --1
  2. SET SERVEROUTPUT ON
  3. DECLARE
  4. id angajati.id_departament%TYPE := &id;
  5. BEGIN
  6. UPDATE angajati SET salariul = salariul + 100 WHERE id_departament = id;
  7. END;
  8.  
  9. --2
  10. CREATE OR REPLACE FUNCTION doi (id IN angajati.id_angajat%TYPE)
  11. RETURN NUMBER IS valoare rand_comenzi.pret%TYPE;
  12. BEGIN
  13. SELECT MAX(SUM(pret*cantitate)) INTO valoare FROM comenzi INNER JOIN rand_comenzi USING(nr_comanda) WHERE id_angajat = id GROUP BY nr_comanda;
  14. RETURN valoare;
  15. END;
  16.  
  17. DECLARE
  18. id angajati.id_angajat%TYPE := &id;
  19. BEGIN
  20. DBMS_OUTPUT.PUT_LINE(doi(id));
  21. END;
  22.  
  23. --3
  24. CREATE OR REPLACE PROCEDURE trei
  25. IS
  26. CURSOR c IS SELECT id_angajat,doi(id_angajat) AS val FROM comenzi ORDER BY val DESC;
  27. BEGIN
  28. FOR b IN c LOOP
  29. DBMS_OUTPUT.PUT_LINE(b.id_angajat||' '||b.val);
  30. EXIT WHEN c%ROWCOUNT=3;
  31. END LOOP;
  32. END;
  33.  
  34. BEGIN
  35. trei;
  36. END;
  37.  
  38. --4
  39. BEGIN
  40. EXECUTE IMMEDIATE 'DROP FUNCTION doi';
  41. EXECUTE IMMEDIATE 'DROP PRODCEDURE trei';
  42. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement