Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment écrire une procédure PL/SQL avec x paramètres d'entrée et entrée/sortie de x paramètres combinés

Pour moi, c'est comme si

  • vous devez "convertir" les procédures qui calculent chaque partie du STUDENT_ID en fonctions
    • Pourquoi ? Parce que - comme c'est le cas maintenant - les procédures doivent avoir un paramètre OUT pour qu'elles puissent renvoyer ce qu'elles ont calculé. Et ce n'est rien d'autre qu'une fonction
  • transmettre des informations à chacun d'eux
  • obtenir le résultat
  • concaténer résultats dans le STUDENT_ID final valeurs

Quelque chose comme ça :

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;  

Enfin, comme toutes ces fonctions et procédures traitent du même problème, il serait bien de les mettre toutes dans un paquet .