まず、パッケージが無効になると思います。パッケージ仕様に関数の本体を追加しようとしています。ただし、アイデア全体は適切であり、正しく実行された場合、たとえばパッケージを作成すれば、機能するはずです。
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;
そしてパッケージ本体:
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;
次に、プロシージャを呼び出します。
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
ご注意ください v_first_parameterのパラメータとして何かをそのプロシージャに送信すると、デフォルトの値ではなく、送信した値が使用されます。