Für mich sieht es so aus, als ob
- sollten Sie Prozeduren "konvertieren". die jeden Teil der
STUDENT_ID
berechnen in Funktionen- Warum? Denn - so wie es jetzt ist - Prozeduren müssen einen OUT-Parameter haben, damit sie zurückgeben können, was sie berechnet haben. Und das ist nichts anderes als eine Funktion
- Teile Informationen an jeden von ihnen weitergeben
- Ergebnis abrufen
- verketten Ergebnisstücke in die endgültige
STUDENT_ID
Werte
Etwa so:
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;
Da all diese Funktionen und Prozeduren dasselbe Problem behandeln, wäre es schließlich schön, sie alle in ein Paket zu packen .