Advertisement
Benlahbib_Abdessamad

Untitled

May 25th, 2015
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.01 KB | None | 0 0
  1. 1.
  2.  
  3.  
  4. CREATE OR REPLACE PROCEDURE Augmentsalary
  5. IS
  6. salaire NUMBER;
  7. jobs varchar2(30);
  8. cursor raisecur IS (SELECT ename,job,sal FROM emp);
  9. ligne raisecur % Rowtype;
  10. BEGIN
  11. OPEN raisecur;
  12. loop
  13. Fetch raisecur INTO ligne;
  14. exit WHEN raisecur%NotFound;
  15. jobs:=ligne.job;
  16. salaire:=ligne.sal;
  17. IF jobs='ANALYST' OR jobs='MANAGER' THEN
  18. salaire:=salaire+salaire*10/100;
  19. elsif jobs='SALESMAN' THEN
  20. salaire:=salaire+salaire*15/100;
  21. elsif jobs='CLERK' OR jobs='PRESIDENT' THEN
  22. salaire:=salaire+salaire*20/100;
  23. END IF;
  24. DBMS_OUTPUT.put_line('l employe <<' || ligne.ename || '>> a le nouveau salaire <<' || salaire || '>> , son ancient salaire est <<' || ligne.sal || '>> , son metier est <<' || ligne.job || '>>');
  25. END loop;
  26. close raisecur;
  27. END Augmentsalary;
  28.  
  29.  
  30.  
  31.  
  32.  
  33. 2.
  34.  
  35. CREATE OR REPLACE FUNCTION getmgrname(numero IN emp.empno%TYPE) RETURN varchar2
  36. IS
  37. mgrmgr NUMBER;
  38. mgrnom varchar2(30);
  39. empnom varchar2(30);
  40. BEGIN
  41. SELECT e.mgr,(SELECT ename FROM emp WHERE empno=e.mgr),e.ename INTO mgrmgr,mgrnom,empnom FROM emp e WHERE empno=numero;
  42. IF mgrmgr IS NULL THEN
  43. mgrnom:='AUCUN';
  44. END IF;
  45. DBMS_OUTPUT.put_line('l employe <<' || empnom || '>> a le manager <<' || mgrnom || '>>');
  46. RETURN (mgrnom);
  47. END getmgrname;
  48.  
  49. 3.
  50.  
  51. CREATE OR REPLACE FUNCTION getsalarymax(code IN emp.empno%TYPE) RETURN NUMBER
  52. IS
  53. salaire NUMBER;
  54. BEGIN
  55. SELECT MAX(e.sal) INTO salaire FROM emp e,salgrade s WHERE e.sal BETWEEN s.losal
  56.  AND s.hisal AND s.grade IN (SELECT s.grade FROM emp e,salgrade s WHERE e.sal BETWEEN s.losal
  57.  AND s.hisal AND e.empno=code) GROUP BY grade;
  58. DBMS_OUTPUT.PUT_LINE('le salaire maximal d un employe du meme grade que '|| code || ' est : ' ||salaire);
  59. RETURN salaire;
  60. END getsalarymax;
  61.  
  62. 4.
  63.  
  64.  
  65. ceate OR REPLACE FUNCTION getsalarymax(daterec IN DATE) RETURN NUMBER
  66. IS
  67. salaire NUMBER;
  68. BEGIN
  69. SELECT MAX(sal) INTO salaire FROM emp WHERE hiredate > daterec;
  70. DBMS_OUTPUT.PUT_LINE('le salaire maximal est : ' ||salaire);
  71. RETURN salaire;
  72. END getsalarymax;
  73.  
  74.  
  75. 5.
  76.  
  77. cursor employecur RETURN emp%rowtype IS SELECT * FROM emp;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement