create or replace package pstudenti as function NrStudSectia(s number) return number; -- functie care determina numarul de studenti de la o sectie function NrStudMedia(s number, m1 real, m2 real) return number; -- numarul de studenti de la o sectie, cu media intre doua limite function StructStud return char; -- numarul de studenti repartizati pe sectii procedure NrStud(s number, nr out string); -- procedura care determina numarul de studenti de la o sectie, repartizati pe intervale de medie end; / create or replace package body pstudenti as function NrStudSectia(s number) return number is nr integer; begin select count(*) into nr from infstud where sectia=s; return nr; end; function NrStudMedia(s number, m1 real, m2 real) return number is cursor temp is select count(*) nr from infstud where media between m1 and m2 and sectia=s; v temp%rowtype; begin for v in temp loop return v.nr; end loop; end; function StructStud return char is cursor temp is select sectia,count(*) as nr from infstud group by sectia order by 1; v temp%rowtype; rez varchar2(200):=''; begin for v in temp loop rez:=rez || to_char(v.sectia,'000') || ':' || to_char(v.nr,'000') || ';'; end loop; return rez; end; procedure NrStud(s number, nr out string) is cursor temp is select round(media) m,count(*) as nr from infstud where sectia=s group by round(media) order by 1; v temp%rowtype; rez varchar2(200):=''; begin for v in temp loop rez:=rez || to_char(v.m,'00') || ':' || to_char(v.nr,'000') || ';'; end loop; nr:=rez; end; end;