sql >> Databasteknik >  >> RDS >> Oracle

Standardparameter i Oracle-proceduren

Först och främst tror jag att det paketet skulle vara ogiltigt, du försöker lägga till en body för din funktion i din paketspecifikation. Men hela idén är bra och den borde fungera, om det görs rätt, skapa till exempel ett paket:

create or replace package xyz is

  procedure abc(v_frst_param in varchar2 default 'Y');

  procedure abc(v_frst_param in varchar2 default 'Y', v_second_param in varchar2);

end xyz;

Och en pakettext:

create or replace package body xyz is

procedure abc(v_frst_param in varchar2 default 'Y') is
  begin  
    dbms_output.put_line(v_frst_param);  
  end;

procedure abc(v_frst_param in varchar2 default 'Y', v_second_param in varchar2) is
  begin  
    dbms_output.put_line(v_frst_param || ' / ' || v_second_param);  
  end;

end xyz;

Då kanske du vill ringa din procedur:

begin
  xyz.abc;
  xyz.abc(); -- This is the same thing as above
  xyz.abc(v_second_param => 'Maybe');
end;

Observera att om du skickar något som en parameter för v_first_parameter till den proceduren kommer det att använda värdet du skickade och inte standardvärdet.



  1. Prestanda Flera inlägg eller flera värden enstaka infogning

  2. hur man beräknar unika kolumnvärden i mysql

  3. Prestanda överraskningar och antaganden:DATEDIFF

  4. Oracle Insert-fråga i lagrad procedur fungerar inte när den anropas från kod bakom