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í.