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

Výchozí parametr v proceduře Oracle

Za prvé si myslím, že tento balíček by byl neplatný, pokoušíte se přidat tělo pro svou funkci ve specifikaci balíčku. Nicméně celý nápad je dobrý a měl by fungovat, pokud je správně proveden, například vytvořte balíček:

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;

A tělo balíčku:

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;

Pak možná budete chtít provést volání vaší procedury:

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

Poznámka že pokud do této procedury odešlete cokoli jako parametr pro v_first_parameter, použije hodnotu, kterou jste odeslali, a nikoli výchozí.



  1. Hibernate:constraintName je v MySQL null

  2. Jak opravit špatně naformátovaný JSON v PHP?

  3. Django DB transakce a uváznutí

  4. Jak vyřešit tuto chybu aktualizace dat v Laravel