Antes de tudo, acho que esse pacote seria inválido, você está tentando adicionar um corpo para sua função na especificação do seu pacote. No entanto a ideia toda é boa e deve funcionar, se bem feita, por exemplo, crie um pacote:
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;
E um corpo de pacote:
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;
Então você pode querer fazer a chamada do seu procedimento:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
Observe que se você enviar qualquer coisa como parâmetro para v_first_parameter para esse procedimento, ele usará o valor que você enviou e não o padrão.