You are on page 1of 1

mostrar por pantala los datos de los x socios que menos cuota de socio pagan,

donde x es un numero introducido por pantalla

declare
vn binary_integer:='&numero_de_socios';
cursor csocio is
select nombre,apellidos,cuota_socio
from usuarios;
type tsocio is table of csocio%rowtype
index by binary_integer;
vtsocio tsocio;
vi binary_integer:=0;
type tnsocio is table of csocio%rowtype
index by binary_integer;
vtnsocio tnsocio;
vj binary_integer:=0;
vb binary_integer:=0;
begin
for vs in csocio loop
vtsocio(vi):=vs;
vi:=vi+1;
end loop;

vj:=vi-1;

for i in 0..vi-1 loop


vtnsocio(i):=vtsocio(0);
vb:=0;
for j in 0..vj loop
if vtnsocio(i).cuota_socio>=vtsocio(j).cuota_socio and
vtsocio(j).cuota_socio!=-1 then
vtnsocio(i):=vtsocio(j);
vb:=j;
end if;

end loop;
vtsocio(vb).cuota_socio:=-1;
vj:=vj-1;
end loop;

dbms_output.put_line('vamos a mostrar los '||vn||' socios con menos cuota de


socio ordenados de menor a mayor');

dbms_output.put_line('||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||');

for i in 0..vn loop


dbms_output.put_line(vtnsocio(i).nombre||' '||vtnsocio(i).apellidos||'
tiene una cuota de '||vtnsocio(i).cuota_socio);

dbms_output.put_line('/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\_/*\');
end loop;

end;

You might also like