Først og fremmest tror jeg, at den pakke ville være ugyldig, du forsøger at tilføje en krop for din funktion i din pakkespecifikation. Men hele ideen er god, og den burde virke, hvis det gøres rigtigt, opret f.eks. en pakke:
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;
Og en pakketekst:
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;
Så vil du måske ringe til din procedure:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
Bemærk venligst at hvis du sender noget som en parameter for v_first_parameter til den procedure, vil den bruge den værdi, du sendte og ikke standardværdien.