sql >> Databáze >  >> RDS >> Oracle

Jak napsat proceduru PL/SQL s kombinací x vstupních parametrů a vstupu/výstupu x parametrů

Pro mě to vypadá, jako by

  • měli byste "převést" postupy které vypočítávají každou část STUDENT_ID do funkcí
    • Proč? Protože – jak je tomu nyní – procedury musí mít parametr OUT, aby mohly vrátit to, co vypočítaly. A to není nic jiného než funkce
  • předat každému z nich informace
  • získejte výsledek
  • zřetězit výsledné části do konečného STUDENT_ID hodnoty

Něco jako toto:

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;  

A konečně, protože všechny tyto funkce a procedury řeší stejný problém, bylo by hezké dát je všechny do balíčku .




  1. MySQL:AVG nebo AVG nemožné?

  2. Výukový program MySQL Workbench – Komplexní průvodce nástrojem RDBMS

  3. Jak se na jaře dotazovat na postgresové celočíselné pole

  4. Získejte anonymní výsledek bloku PLSQL