jueves, 15 de septiembre de 2011

Desarrollo CursorPruebaUno

DECLARE
cursor crContarPropiedades(countNUMEMPLEADO char) is
SELECT count(NUMPROPIEDAD)
FROM PROPIEDAD
WHERE NUMEMPLEADO = countNUMEMPLEADO
GROUP BY NUMEMPLEADO;

cursor crDatosEmpleados is
SELECT NUMEMPLEADO, NOMBRE, APELLIDO
FROM EMPLEADO;

vNumeroEmpleado EMPLEADO.NUMEMPLEADO%TYPE;
vNombreEmpleado EMPLEADO.NOMBRE%TYPE;
vApellidoEmpleado EMPLEADO.APELLIDO%TYPE;
contador integer := 0;
totalPares integer := 0;

begin
open crDatosEmpleados();
loop
fetch crDatosEmpleados into vNumeroEmpleado, vNombreEmpleado, vApellidoEmpleado;
open crContarPropiedades(vNumeroEmpleado);
loop
fetch crContarPropiedades into contador;
exit when crContarPropiedades %notfound;
end loop;
close crContarPropiedades;

if contador/2 <> 1 then
dbms_output.put_line(vNumeroEmpleado||' '||vNombreEmpleado||' '||vApellidoEmpleado||' '||contador);
else
dbms_output.put_line(vNumeroEmpleado||' '||vNombreEmpleado||' '||vApellidoEmpleado||' '||contador||'*');
totalPares := totalPares+1;
end if;

exit when crDatosEmpleados %notfound;
end loop;

dbms_output.put_line('El total de empleados que manejan una cantidad par de propiedades es : '||totalPares);
close crDatosEmpleados;
END;

No hay comentarios:

Publicar un comentario