Oracle
 sql >> Database >  >> RDS >> Oracle

Come scrivere una procedura PL/SQL con x parametri di input e input/output di x parametri combinati

A me sembra che

  • dovresti "convertire" le procedure che calcolano ogni parte del STUDENT_ID nelle funzioni
    • Perché? Perché - come è ora - le procedure devono avere un parametro OUT in modo che possano restituire ciò che hanno calcolato. E non è altro che una funzione
  • passare informazioni a ciascuno di essi
  • ottenere il risultato
  • concatena pezzi del risultato nel STUDENT_ID finale valori

Qualcosa del genere:

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;  

Infine, poiché tutte quelle funzioni e procedure affrontano lo stesso problema, sarebbe bello inserirle tutte in un pacchetto .