Advertisement
Guest User

Untitled

a guest
Mar 28th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --3
  2. SET SERVEROUTPUT ON
  3. DECLARE v_rec persoane%ROWTYPE;
  4. BEGIN
  5. SELECT * INTO v_rec FROM persoane WHERE Codp = 4;
  6. DBMS_OUTPUT.PUT_LINE('Numele angajatului cu codul 4 este '||v_rec.nume||' si are functia '||v_rec.functia);
  7. END;
  8.  
  9. --3 v2
  10.  
  11.  
  12. --4
  13. DECLARE nr_ang NUMBER;
  14. BEGIN
  15. SELECT COUNT(codp) INTO nr_ang FROM persoane WHERE codcat = (SELECT codcat FROM catedre WHERE codcat = '&c');
  16. DBMS_OUTPUT.PUT_LINE('Numarul de persoane este '||nr_ang);
  17. END;
  18.  
  19. --4 v2
  20. DECLARE
  21. id persoane.codcat%TYPE;
  22. nr_persoane NUMBER;
  23. BEGIN
  24. id:='&i';
  25. SELECT COUNT(id) INTO nr_persoane FROM persoane WHERE codcat = id;
  26. DBMS_OUTPUT.PUT_LINE('Departamentul '||id||' are '||nr_persoane||' angajati');
  27. END;
  28.  
  29. --5 facut pe baza 4 v2
  30. DECLARE
  31. id persoane.codcat%TYPE;
  32. nr_persoane NUMBER;
  33. nr_cat NUMBER;
  34. e EXCEPTION;
  35. BEGIN
  36. id:='&i';
  37. SELECT COUNT(codcat) INTO nr_cat FROM catedre WHERE codcat = id;
  38. IF nr_cat = 1 THEN
  39. SELECT COUNT(id) INTO nr_persoane FROM persoane WHERE codcat = id;
  40. DBMS_OUTPUT.PUT_LINE('Departamentul '||id||' are '||nr_persoane||' angajati');
  41. ELSE
  42. RAISE e;
  43. END IF;
  44. EXCEPTION WHEN e THEN
  45. DBMS_OUTPUT.PUT_LINE('Codul catedrei nu exista');
  46. END;
  47.  
  48. --6
  49. DECLARE
  50. e EXCEPTION;
  51. BEGIN
  52. UPDATE angajati SET salariul = salariul * 1.2 WHERE salariul < 1500;
  53. IF SQL%ROWCOUNT > 0 THEN
  54. DBMS_OUTPUT.PUT_LINE('Numarul de modificari este '||SQL%ROWCOUNT);
  55. ELSE
  56. RAISE e;
  57. END IF;
  58. EXCEPTION WHEN e THEN
  59. DBMS_OUTPUT.PUT_LINE('Nu exista angajati cu salariul mai mic de 1500');
  60. END;
  61.  
  62. --7
  63.  
  64.  
  65. --8
  66. DECLARE
  67. nume_ang angajati.nume%TYPE;
  68. prenume_ang angajati.prenume%TYPE;
  69. functie_ang angajati.id_functie%TYPE;
  70. CURSOR c IS SELECT nume, prenume, id_functie FROM angajati ORDER BY salariul DESC;
  71. BEGIN
  72. OPEN c;
  73. FOR i IN 1..4 LOOP
  74. FETCH c INTO nume_ang, prenume_ang, functie_ang;
  75. DBMS_OUTPUT.PUT_LINE('Angajatul cu numele '||nume_ang||', prenumele '||prenume_ang||' si cu functia '||functie_ang||' este pe locul '||i);
  76. END LOOP;
  77. CLOSE c;
  78. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement