Advertisement
Benlahbib_Abdessamad

Untitled

May 26th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. CREATE or REPLACE package package_Majana
  2. PROCEDURE Salary_Augment ;
  3. FUNCTION getMgrName(numero IN emp.empno%TYPE) RETURN varchar2 ;
  4. FUNCTION getsalarymax(code IN emp.empno%TYPE) RETURN NUMBER;
  5. FUNCTION getsalarymax(f_date IN DATE) RETURN NUMBER;
  6. CURSOR employee return emp%rowtype is select * from emp;
  7.  
  8. END package_Majana;
  9. /
  10.  
  11. CREATE OR REPLACE PACKAGE BODY package_Majana As
  12. PROCEDURE Salary_Augment
  13. IS
  14. grad NUMBER;
  15. salaire NUMBER;
  16. nom varchar2(30);
  17. cursor c IS (SELECT e.ename,s.grade,e.sal FROM emp e,salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal);
  18. ligne c % Rowtype;
  19. BEGIN
  20. OPEN c;
  21. loop
  22. Fetch c INTO ligne;
  23. exit WHEN c%NotFound;
  24. grad:=ligne.grade;
  25. salaire:=ligne.sal;
  26. nom:=ligne.ename;
  27. IF grad=1 OR grad=2 THEN
  28. salaire:=salaire+salaire*10/100;
  29. elsif grad=3 THEN
  30. salaire:=salaire+salaire*15/100;
  31. elsif grad=4 OR grad=5 THEN
  32. salaire:=salaire+salaire*20/100;
  33. END IF;
  34. DBMS_OUTPUT.put_line('l employe <<' || nom || '>> a le nouveau salaire <<' || salaire || '>> , son ancient salaire est <<' || ligne.sal || '>> , son grade est <<' || grade || '>>');
  35. END loop;
  36. close c;
  37. END Salary_Augment;
  38.  
  39. FUNCTION getMgrName(numero IN emp.empno%TYPE) RETURN varchar2
  40. IS
  41.  
  42. f_mgr NUMBER;
  43. f_mgrNom varchar2(30);
  44. f_empNom varchar2(30);
  45. BEGIN
  46. SELECT mgr,ename,(select ename from emp where empno=mgr) INTO f_mgr,f_empNom,f_mgrNom FROM emp WHERE empno=numero;
  47. IF f_mgr IS NULL THEN
  48. f_mgrNom:='AUCUN';
  49. ELSE
  50. select ename into f_mgrNom from emp where empno=f_mgr ;
  51. END IF;
  52. DBMS_OUTPUT.put_line('l employe <<' || f_empNom || '>> a le manager <<' || f_mgrNom || '>>');
  53. RETURN (f_mgrNom);
  54. END getMgrName;
  55.  
  56.  
  57.  
  58. FUNCTION getsalarymax(code IN emp.empno%TYPE) RETURN NUMBER
  59. IS
  60. salaire NUMBER;
  61. BEGIN
  62. SELECT MAX(e.sal) INTO salaire FROM emp e,salgrade s WHERE e.sal BETWEEN s.losal
  63. AND s.hisal AND s.grade IN (SELECT s.grade FROM emp e,salgrade s WHERE e.sal BETWEEN s.losal
  64. AND s.hisal AND e.empno=code) GROUP BY grade;
  65. DBMS_OUTPUT.PUT_LINE('le salaire maximal d un employe du meme grade que '|| code || ' est : ' ||salaire);
  66. RETURN salaire;
  67. END getsalarymax;
  68.  
  69.  
  70.  
  71. FUNCTION getsalarymax(f_date IN DATE) RETURN NUMBER
  72. IS
  73. salaire NUMBER;
  74. BEGIN
  75. select max(sal) into salaire from emp where hiredate>f_date ;
  76. DBMS_OUTPUT.PUT_LINE('le salaire maximal est :' ||salaire);
  77. RETURN salaire;
  78. END getsalarymax;
  79.  
  80.  
  81. end package_Majana;
  82. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement