Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. NO_EXISTE_DEPARTAMENTO EXCEPTION;
  2. NO_HAY_EMPLEADOS_DEPART EXCEPTION;
  3. NO_HAY_EMPLEADOS_CURSOR EXCEPTION;
  4. BEGIN
  5.  
  6. -- BUSCO EL DEPARTAMENTO
  7. SELECT COUNT(*) INTO DEP_VALIDO
  8. FROM N_DEPARTAMENTOS
  9. WHERE COD_DEP = P_COD_DEP;
  10.  
  11. -- BUSCO EMPLEADOS EN EL DEPARTAMENTO
  12. SELECT COUNT(*) INTO EXISTE_EMPLEADO
  13. FROM N_EMPLEADOS
  14. WHERE COD_DEP = P_COD_DEP;
  15.  
  16. -- EVALUO SI EL DEPARTAMENTO ES VÁLIDO
  17. IF DEP_VALIDO = 0 THEN
  18. RAISE NO_EXISTE_DEPARTAMENTO;
  19. P_TOTAL_SUELDO := -1;
  20.  
  21. -- EVALUO SI HAY EMPLEADOS
  22. ELSIF EXISTE_EMPLEADO = 0 THEN
  23. RAISE NO_HAY_EMPLEADOS_DEPART;
  24. P_TOTAL_SUELDO := -2;
  25.  
  26. ELSE
  27. FOR V_CURSOR IN (SELECT EMP.NRO_HIJOS, EMP.DNI, EMP.NRO_TRIENIOS, NIV.SUELDO_BASE, NIV.EUROS_UN_TRIENIO
  28. FROM N_EMPLEADOS EMP INNER JOIN N_NIVELES NIV
  29. ON EMP.COD_NIVEL = NIV.COD_NIVEL
  30. WHERE SUMA_COMPLEMENTOS(EMP.DNI) > 250
  31. AND COD_DEP = P_COD_DEP) LOOP
  32. SUELDO_BRUTO := (NIV.SUELDO_BASE + NRO_TRIENIOS * NIV.EUROS_UN_TRIENIO + SUMA_COMPLEMENTOS(EMP.DNI));
  33. SUELDO_TOTAL := SUELDO_BRUTO - (SUELDO_BRUTO * CALCULAR_IRPF(EMP.NRO_HIJOS, EMP.SUELDO_BASE));
  34. P_TOTAL_SUELDO := P_TOTAL_SUELDO + SUELDO_TOTAL;
  35. END LOOP;
  36. END IF;
  37.  
  38.  
  39. EXCEPTION
  40. WHEN NO_EXISTE_DEPARTAMENTO THEN
  41. P_TOTAL_SUELDO := -1;
  42. WHEN NO_HAY_EMPLEADOS_DEPART THEN
  43. P_TOTAL_SUELDO := -2;
  44. WHEN NO_HAY_EMPLEADOS_CURSOR THEN
  45. P_TOTAL_SUELDO := -3;
  46. WHEN OTHERS THEN
  47. DBMS_OUTPUT.PUT_LINE('CÓDIGO :'|| SQLCODE || ' ERROR : '||SQLERRM);
  48. END CALCULAR_SUELDO_DEPAR;
  49.  
  50. Procedure CALCULAR_SUELDO_DEPAR compilado
  51.  
  52. LINE/COL ERROR
  53. --------- -------------------------------------------------------------
  54. 40/5 PL/SQL: Statement ignored
  55. 40/22 PLS-00201: identifier 'NIV.SUELDO_BASE' must be declared
  56. 41/5 PL/SQL: Statement ignored
  57. 41/66 PLS-00201: identifier 'EMP.NRO_HIJOS' must be declared
  58. Errores: comprobar log de compilador
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement