Voor mij lijkt het alsof
- u moet procedures "converteren" die elk deel van de
STUDENT_ID
. berekenen in functies- Waarom? Omdat - zoals het nu is - procedures een OUT-parameter moeten hebben, zodat ze kunnen retourneren wat ze hebben berekend. En dat is niets anders dan een functie
- geef aan elk van hen stukjes informatie
- het resultaat krijgen
- aaneenschakelen resultaatstukken in de laatste
STUDENT_ID
waarden
Zoiets als dit:
function f_name (par_name in varchar2) return varchar2 is
retval varchar2(20);
begin
retval := whatever code you have to find it
return retval;
end;
function f_surname (par_surname in varchar2) return varchar2 is
retval varchar2(20);
begin
retval := whatever code you have to find it
return retval;
end;
etc.
procedure student_id (par_surname in varchar2, par_name in varchar2, ...)
is
l_student_id varchar2(30);
begin
l_student_id := f_name (par_name) ||'-'||
f_surname(par_surname) ||'-'||
f_gender (par_gender) ||'-'||
...
f_state (par_state);
dbms_output.put_line('Student_ID is: ' || l_student_id);
end;
Ten slotte, aangezien al die functies en procedures hetzelfde probleem behandelen, zou het leuk zijn om ze allemaal in een pakket te stoppen .