sql >> Databasteknik >  >> RDS >> Oracle

Hur man skriver en PL/SQL-procedur med x inmatningsparametrar och inmatning/output av x parametrar kombinerat

För mig ser det ut som om

  • du bör "konvertera" procedurer som beräknar varje del av STUDENT_ID till funktioner
    • Varför? För - som det är nu - måste procedurer ha en OUT-parameter så att de kan returnera vad de beräknat. Och det är inget annat än en funktion
  • vidarebefordra information till var och en av dem
  • få resultatet
  • sammanfoga resultatbitar till den slutliga STUDENT_ID värden

Något så här:

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;  

Slutligen, eftersom alla dessa funktioner och procedurer hanterar samma problem, skulle det vara trevligt att lägga dem alla i ett paket .




  1. Kan inte ansluta till Oracle via VBA - Driver's SQLSetConnectAttr misslyckades

  2. Datum/tidsstämpel för att spela in när en post lades till i tabellen?

  3. Varför tar frågor som körs från mysql workbench mycket längre tid än att köra dem direkt från mysql cli?

  4. Hur sparar jag historik över rekorduppdateringar i MySQL?