Advertisement
Zalosin

PLSQL lab 4

Nov 26th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.10 KB | None | 0 0
  1. --SET SERVEROUTPUT ON
  2. --DECLARE
  3. --    v_nume employees.last_name%TYPE := Initcap('&p_nume');
  4. --    
  5. --    FUNCTION f1 RETURN NUMBER IS
  6. --        salariu employees.salary%TYPE;
  7. --    BEGIN
  8. --        SELECT salary INTO salariu
  9. --        FROM employees
  10. --        WHERE last_name = v_nume;
  11. --        RETURN salariu;
  12. --    EXCEPTION
  13. --        WHEN NO_DATA_FOUND THEN
  14. --            DBMS_OUTPUT.PUT_LINE('Nu exista angajati cu numele dat');
  15. --        WHEN TOO_MANY_ROWS THEN
  16. --            DBMS_OUTPUT.PUT_LINE('Exista mai multi angajati ' || 'cu numele dat');
  17. --        WHEN OTHERS THEN
  18. --            DBMS_OUTPUT.PUT_LINE('Alta eroare');
  19. --    END f1;
  20. --    
  21. --BEGIN
  22. --    DBMS_OUTPUT.PUT_LINE('Salariul este ' || f1);
  23. --END;
  24. --/
  25.  
  26. --CREATE OR REPLACE FUNCTION f2_testing
  27. --    (v_nume employees.last_name%TYPE DEFAULT 'Bell')
  28. --RETURN NUMBER IS
  29. --    salariu employees.salary%TYPE;
  30. --    BEGIN
  31. --        SELECT salary INTO salariu
  32. --        FROM employees
  33. --        WHERE last_name = v_nume;
  34. --        RETURN salariu;
  35. --    EXCEPTION
  36. --        WHEN NO_DATA_FOUND THEN
  37. --            RAISE_APPLICATION_ERROR(-20000,'Nu exista angajati cu numele dat');
  38. --        WHEN TOO_MANY_ROWS THEN
  39. --            RAISE_APPLICATION_ERROR(-20001,'Exista mai multi angajati cu numele dat');
  40. --        WHEN OTHERS THEN
  41. --            RAISE_APPLICATION_ERROR(-20002,'Alta eroare!');
  42. --END f2_testing;
  43. --/
  44.  
  45. --BEGIN
  46. --    DBMS_OUTPUT.PUT_LINE('salariul este '|| f2_testing('Ozer'));
  47. --END;
  48. --/
  49.  
  50. --SELECT f2_testing FROM DUAL;
  51. --SELECT f2_testing('King') FROM DUAL;
  52.  
  53. --DECLARE
  54. --    v_nume employees.last_name%TYPE := Initcap('&p_nume');
  55. --    
  56. --    PROCEDURE p3
  57. --    IS
  58. --        salariu employees.salary%TYPE;
  59. --    BEGIN
  60. --        SELECT salary INTO salariu
  61. --        FROM employees
  62. --        WHERE last_name = v_nume;
  63. --        DBMS_OUTPUT.PUT_LINE('Salariul este '|| salariu);
  64. --        
  65. --    EXCEPTION
  66. --        WHEN NO_DATA_FOUND THEN
  67. --            DBMS_OUTPUT.PUT_LINE('Nu exista angajati cu numele dat');
  68. --        WHEN TOO_MANY_ROWS THEN
  69. --            DBMS_OUTPUT.PUT_LINE('Exista mai multi angajati cu numele dat');
  70. --        WHEN OTHERS THEN
  71. --            DBMS_OUTPUT.PUT_LINE('Alta eroare');
  72. --    END p3;
  73. --    
  74. --BEGIN
  75. --    p3;
  76. --END;
  77. --/
  78. --CREATE OR REPLACE PROCEDURE p4_testing
  79. --        (v_nume employees.last_name%TYPE)
  80. --    IS
  81. --        salariu employees.salary%TYPE;
  82. --    BEGIN
  83. --        SELECT salary INTO salariu
  84. --        FROM employees
  85. --        WHERE last_name = v_nume;
  86. --        DBMS_OUTPUT.PUT_LINE('Salariul este '|| salariu);
  87. --        
  88. --    EXCEPTION
  89. --        WHEN NO_DATA_FOUND THEN
  90. --            RAISE_APPLICATION_ERROR(-20000,'Nu exista angajati cu numele dat');
  91. --        WHEN TOO_MANY_ROWS THEN
  92. --            RAISE_APPLICATION_ERROR(-20001,'Exista mai multi angajati cu numele dat');
  93. --        WHEN OTHERS THEN
  94. --            RAISE_APPLICATION_ERROR(-20002,'Alta eroare!');
  95. --END p4_testing;
  96. --/
  97.  
  98. --BEGIN
  99. --    p4_testing('Bell');
  100. --END;
  101. --/
  102. --
  103. --CREATE OR REPLACE PROCEDURE p5_testing (nr IN OUT NUMBER) IS
  104. --BEGIN
  105. --    SELECT manager_id INTO nr
  106. --    FROM employees
  107. --    WHERE employee_id = nr;
  108. --END p5_testing;
  109. --/
  110. --
  111. --VARIABLE ang_man NUMBER
  112. --BEGIN
  113. --    :ang_man:=200;
  114. --END;
  115. --/
  116.  
  117. EXECUTE p5_testing(:ang_man)
  118. PRINT ang_man
  119.  
  120. DECLARE
  121.     nume employees.last_name%TYPE;
  122. PROCEDURE p6 (  rezultat    OUT employees.last_name%TYPE,
  123.                 comision    IN  employees.commission_pct%TYPE := NULL,
  124.                 cod         IN  employees.employee_id%TYPE := NULL)
  125.     IS
  126.     BEGIN
  127.     IF (comision IS NOT NULL) THEN
  128.         SELECT last_name
  129.         INTO rezultat
  130.         FROM employees
  131.         WHERE commission_pct = comision;
  132.         DBMS_OUTPUT.PUT_LINE('numele salariatului care are comisionul ' || comision || ' este ' || rezultat);
  133.        
  134.     ELSE
  135.         SELECT last_name
  136.         INTO rezultat
  137.         FROM employees
  138.         WHERE employee_id = cod;
  139.         DBMS_OUTPUT.PUT_LINE('numele salariatului avand codul ' || cod || ' este ' || rezultat);
  140.     END IF;
  141. END p6;
  142.  
  143. BEGIN
  144.     p6(nume,0.4);
  145.     p6(nume,cod=>200);
  146. END;
  147. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement