Advertisement
Guest User

Untitled

a guest
May 27th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. --CREAMOS LA SECUENCIA
  2. CREATE SEQUENCE SEC_EMP;
  3. CREATE SEQUENCE SEC_ERRORES;
  4.  
  5. CREATE TABLE ERRORES(
  6. ID NUMBER PRIMARY KEY,
  7. CODIGO NUMBER,
  8. MENSAJE VARCHAR2(255),
  9. FECHA_PROCESO DATE
  10. );
  11.  
  12.  
  13. DECLARE
  14. CURSOR C_DEPTOS IS (SELECT DEPARTMENT_ID, DEPARTMENT_NAME FROM DEPARTMENTS);
  15. V_DESC VARCHAR2(20);
  16. C_ALTA NUMBER :=0;
  17. C_MEDIA NUMBER :=0;
  18. C_BAJA NUMBER :=0;
  19.  
  20. V_CODIGO NUMBER;
  21. V_MENSAJE VARCHAR2(255);
  22. BEGIN
  23.  
  24. FOR X IN C_DEPTOS LOOP
  25.  
  26. FOR Y IN (SELECT FIRST_NAME, ROUND((SYSDATE - HIRE_DATE)/365) AS ANIOS FROM EMPLOYEES WHERE DEPARTMENT_ID = X.DEPARTMENT_ID) LOOP
  27.  
  28. BEGIN -------------------------
  29.  
  30. --AQUI VAMOS A HACER LAS CONDICIONES PARA SABER LA DISPONIBILIDAD
  31. --RESCATAMOS LA CATEGORIA DESDE LA TABLA, SEGÚN LOS AÑOS QUE LLEVA TRABAJANDO EL EMPLEADO
  32. SELECT DESCRIPCION INTO V_DESC FROM TRAMO_ANIOS
  33. WHERE Y.ANIOS BETWEEN ANIOS_INF AND ANIOS_SUP;
  34.  
  35. --HACER LAS CONDICIONES CON EL "IF"
  36. IF V_DESC = 'ALTA' THEN
  37. C_ALTA := C_ALTA + 1 ;
  38. END IF;
  39. IF V_DESC = 'MEDIA' THEN
  40. C_MEDIA := C_MEDIA + 1;
  41. END IF;
  42. IF V_DESC = 'BAJA' THEN
  43. C_BAJA := C_BAJA + 1;
  44. END IF;
  45. EXCEPTION
  46. WHEN NO_DATA_FOUND THEN
  47. V_CODIGO := SQLCODE;
  48. V_MENSAJE := 'EL EMPLEADO ' || Y.FIRST_NAME || ' ESTA FUERA DEL RANGO DE AÑOS';
  49. INSERT INTO ERRORES VALUES (SEC_ERRORES.NEXTVAL,V_CODIGO,V_MENSAJE, SYSDATE);
  50.  
  51. END; -------------------------
  52. END LOOP;
  53.  
  54. INSERT INTO DISPONIBILIDAD_EMPLEADO VALUES (SEC_EMP.NEXTVAL,X.DEPARTMENT_NAME, C_ALTA,C_MEDIA,C_BAJA);
  55. C_ALTA :=0;
  56. C_MEDIA :=0;
  57. C_BAJA :=0;
  58.  
  59. END LOOP;
  60. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement