viernes, 14 de junio de 2013

PROCEDURE - CURSOR


create or replace procedure listaPro(pNumero char) is
  contador integer := 0;
  vnombre empleado.nombre%type;

  cursor cpropiedad (pnumempleado empleado.numempleado%type) is
  select * from propiedad
  where numempleado = pnumempleado;

begin

  select nombre into vnombre
  from empleado
  where numempleado = pNumero;

  dbms_output.put_line('Nombre                         Numero');
  dbms_output.put_line(vnombre || ' ' || pNumero);
  dbms_output.put_line('      Numero      Tipo                      Renta');
  for rprop in cpropiedad(pNumero)
  LOOP
     dbms_output.put_line('      '|| rprop.numpropiedad ||'        ' || rprop.tipo || ' ' || rprop.renta);
     contador := contador + 1;  
  END LOOP;
  dbms_output.put_line('Total propiedades: ' || contador);
  exception
  when no_data_found then
  dbms_output.put_line('No hay registros');

end;


set serveroutput on
begin
  listaPro('SL21');
end;




--------------------------------------------------------------------------------------------------


create or replace
PROCEDURE CalcularEstadisticas is

  type prop is record(
  cantidad propiedad.numpropiedad%type,
  rentaPromedio float,
  rentaMaxima float,
  rentaMinima float
  );  
  cls prop;

begin
 
  select count(numpropiedad), avg(renta), max(renta), min(renta) into cls
  from propiedad;
 
  dbms_output.put_line('Total Propiedades: '||cls.cantidad||' rentaPromedio: '||cls.rentaPromedio||' rentaMaxima: '||cls.rentaMaxima||' renta minima: '||cls.rentaMinima);
 
end;

set serveroutput on
begin
CalcularEstadisticas;
end;

No hay comentarios.:

Publicar un comentario