Guest User

Untitled

a guest
Oct 19th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE MOD_PROFESORS (PRO_COD_CENTRO PROFESORS.COD_CENTRO%TYPE,
  2. PRO_DNI PROFESORS.DNI%TYPE,
  3. PRO_APELLIDOS PROFESORS.APELLIDOS%TYPE,
  4. PRO_ESPECIALIDAD PROFESORS.ESPECIALIDAD%TYPE,
  5. PRO_SALARIO PROFESORS.SALARIO%TYPE,
  6. PRO_TIPO_MOV PROFESORS_MOV.TIPO_MOV%TYPE)
  7. IS
  8. PRO_COUNTERA NUMBER;
  9. PRO_COUNTERB NUMBER;
  10.  
  11. PROFE_YA_EXISTE EXCEPTION;
  12. PROFE_NOT_EXISTE EXCEPTION;
  13. COD_CENTRO_NOT_EXISTE EXCEPTION;
  14. SALARIO_NO_MODIFICADO EXCEPTION;
  15. BEGIN
  16. IF (PRO_TIPO_MOV = 'A') THEN
  17. SELECT COUNT(DNI) INTO PRO_COUNTERA FROM PROFESORS
  18. WHERE DNI = PRO_DNI;
  19. IF (PRO_COUNTERA = 1) THEN
  20. RAISE PROFE_YA_EXISTE;
  21. ELSE
  22. INSERT INTO PROFESORS VALUES
  23. (PRO_COD_CENTRO, PRO_DNI, PRO_APELLIDOS,
  24. PRO_ESPECIALIDAD, PRO_SALARIO);
  25. DBMS_OUTPUT.PUT_LINE('FILA INSERTADA CORRECTAMENTE');
  26. END IF;
  27. END IF;
  28. IF (PRO_TIPO_MOV = 'B') THEN
  29. SELECT COUNT(DNI) INTO PRO_COUNTERA FROM PROFESORS
  30. WHERE DNI = PRO_DNI;
  31. IF (PRO_COUNTERA = 0) THEN
  32. RAISE PROFE_NOT_EXISTE;
  33. ELSE
  34. DELETE FROM PROFESORS WHERE DNI = PRO_DNI;
  35. DBMS_OUTPUT.PUT_LINE('FILA BORRADA CORRECTAMENTE.');
  36. END IF;
  37. END IF;
  38. IF (PRO_TIPO_MOV = 'C') THEN
  39. SELECT COUNT(*) INTO V_COUNTERA FROM PROFESORS WHERE DNI = PRO_DNI;
  40. SELECT COUNT(*) INTO V_COUNTERB FROM CENTRES WHERE COD_CENTRO = PRO_COD_CENTRO;
  41. IF V_COUNTERA = 0 THEN
  42. RAISE PROFE_NOT_EXISTE;
  43. ELSIF V_COUNTERB = 0 THEN
  44. RAISE COD_CENTRO_NOT_EXISTE;
  45. ELSE
  46. UPDATE PROFESORS SET COD_CENTRO = PRO_COD_CENTRO WHERE DNI = PRO_DNI;
  47. END IF;
  48. END IF;
  49. IF (PRO_TIPO_MOV = 'S') THEN
  50. SELECT COUNT(SALARIO) INTO PRO_COUNTERA FROM PROFESORS WHERE DNI = PRO_DNI;
  51. IF (PRO_COUNTERA = 0) THEN
  52. RAISE SALARIO_NO_MODIFICADO;
  53. ELSE
  54. UPDATE PROFESORS SET SALARIO = PRO_SALARIO WHERE
  55. DNI = PRO_DNI;
  56. DBMS_OUTPUT.PUT_LINE('SALARIO ACTUALIZADO CORRECTAMENTE.');
  57. END IF;
  58. END IF;
  59. EXCEPTION
  60. WHEN PROFE_YA_EXISTE THEN
  61. DBMS_OUTPUT.PUT_LINE('NÚMERO DE DNI '|| PRO_DNI ||' YA
  62. EXISTENTE EN LA BASE DE DATOS.');
  63. WHEN PROFE_NOT_EXISTE THEN
  64. DBMS_OUTPUT.PUT_LINE('NÚMERO DE DNI '|| PRO_DNI ||' NO
  65. EXISTENTE EN LA BASE DE DATOS.');
  66. WHEN COD_CENTRO_NOT_EXISTE THEN
  67. DBMS_OUTPUT.PUT_LINE('NÚMERO DE CENTRO '||
  68. PRO_COD_CENTRO ||' NO EXISTENTE A LA BASE DE DATOS.');
  69. WHEN SALARIO_NO_MODIFICADO THEN
  70. DBMS_OUTPUT.PUT_LINE('SALARIO
  71. DE PROFESOR CON DNI '|| PRO_DNI ||' NO PUEDE SER ACTUALIZADO.');
  72. END;
Add Comment
Please, Sign In to add comment