sql >> Base de Datos >  >> RDS >> Oracle

Cómo escribir un procedimiento PL/SQL con x parámetros de entrada y entrada/salida de x parámetros combinados

Para mí, parece como si

  • debe "convertir" procedimientos que calculan cada parte del STUDENT_ID en funciones
    • ¿Por qué? Porque, tal como está ahora, los procedimientos deben tener un parámetro OUT para que puedan devolver lo que calcularon. Y eso no es más que una función
  • pasar piezas de información a cada uno de ellos
  • obtener el resultado
  • concatenar partes del resultado en el STUDENT_ID final valores

Algo como esto:

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;  

Finalmente, como todas esas funciones y procedimientos se ocupan del mismo problema, sería bueno ponerlos todos en un paquete. .