Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NO_EXISTE_DEPARTAMENTO EXCEPTION;
- NO_HAY_EMPLEADOS_DEPART EXCEPTION;
- NO_HAY_EMPLEADOS_CURSOR EXCEPTION;
- BEGIN
- -- BUSCO EL DEPARTAMENTO
- SELECT COUNT(*) INTO DEP_VALIDO
- FROM N_DEPARTAMENTOS
- WHERE COD_DEP = P_COD_DEP;
- -- BUSCO EMPLEADOS EN EL DEPARTAMENTO
- SELECT COUNT(*) INTO EXISTE_EMPLEADO
- FROM N_EMPLEADOS
- WHERE COD_DEP = P_COD_DEP;
- -- EVALUO SI EL DEPARTAMENTO ES VÁLIDO
- IF DEP_VALIDO = 0 THEN
- RAISE NO_EXISTE_DEPARTAMENTO;
- P_TOTAL_SUELDO := -1;
- -- EVALUO SI HAY EMPLEADOS
- ELSIF EXISTE_EMPLEADO = 0 THEN
- RAISE NO_HAY_EMPLEADOS_DEPART;
- P_TOTAL_SUELDO := -2;
- ELSE
- FOR V_CURSOR IN (SELECT EMP.NRO_HIJOS, EMP.DNI, EMP.NRO_TRIENIOS, NIV.SUELDO_BASE, NIV.EUROS_UN_TRIENIO
- FROM N_EMPLEADOS EMP INNER JOIN N_NIVELES NIV
- ON EMP.COD_NIVEL = NIV.COD_NIVEL
- WHERE SUMA_COMPLEMENTOS(EMP.DNI) > 250
- AND COD_DEP = P_COD_DEP) LOOP
- SUELDO_BRUTO := (NIV.SUELDO_BASE + NRO_TRIENIOS * NIV.EUROS_UN_TRIENIO + SUMA_COMPLEMENTOS(EMP.DNI));
- SUELDO_TOTAL := SUELDO_BRUTO - (SUELDO_BRUTO * CALCULAR_IRPF(EMP.NRO_HIJOS, EMP.SUELDO_BASE));
- P_TOTAL_SUELDO := P_TOTAL_SUELDO + SUELDO_TOTAL;
- END LOOP;
- END IF;
- EXCEPTION
- WHEN NO_EXISTE_DEPARTAMENTO THEN
- P_TOTAL_SUELDO := -1;
- WHEN NO_HAY_EMPLEADOS_DEPART THEN
- P_TOTAL_SUELDO := -2;
- WHEN NO_HAY_EMPLEADOS_CURSOR THEN
- P_TOTAL_SUELDO := -3;
- WHEN OTHERS THEN
- DBMS_OUTPUT.PUT_LINE('CÓDIGO :'|| SQLCODE || ' ERROR : '||SQLERRM);
- END CALCULAR_SUELDO_DEPAR;
- Procedure CALCULAR_SUELDO_DEPAR compilado
- LINE/COL ERROR
- --------- -------------------------------------------------------------
- 40/5 PL/SQL: Statement ignored
- 40/22 PLS-00201: identifier 'NIV.SUELDO_BASE' must be declared
- 41/5 PL/SQL: Statement ignored
- 41/66 PLS-00201: identifier 'EMP.NRO_HIJOS' must be declared
- Errores: comprobar log de compilador
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement