Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak napisać procedurę PL/SQL z połączonymi x parametrami wejściowymi i danymi wejściowymi/wyjściowymi x parametrów?

Dla mnie wygląda to tak, jakby

  • powinieneś „przekonwertować” procedury które obliczają każdą część STUDENT_ID w funkcje
    • Dlaczego? Ponieważ - tak jak teraz - procedury muszą mieć parametr OUT, aby mogły zwracać to, co obliczyły. A to tylko funkcja
  • przekaż każdemu z nich informacje
  • uzyskaj wynik
  • konkatenuj kawałki wyników do końcowego STUDENT_ID wartości

Coś takiego:

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;  

Wreszcie, ponieważ wszystkie te funkcje i procedury radzą sobie z tym samym problemem, byłoby miło umieścić je wszystkie w pakiecie .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dołącz do forum pytań i odpowiedzi dla programistów

  2. Jak dodać „System.Drawing.Image” do „System.Web.UI.WebControls.Image”

  3. Korzystanie z Oracle i PHP:Działa w SQL Developer, ale wyniki pliku PHP ORA-00900:Nieprawidłowa instrukcja

  4. Jaka jest domyślna nazwa ograniczenia w Oracle?

  5. Dlaczego PHP OCI8/Oracle oci_bind_array_by_name nie działa dla mnie?