En primer lugar, creo que el paquete no sería válido, está intentando agregar un cuerpo para su función en la especificación de su paquete. Sin embargo, toda la idea es buena y debería funcionar, si se hace bien, por ejemplo, cree un paquete:
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;
Y un cuerpo de paquete:
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;
Entonces es posible que desee realizar la llamada de su procedimiento:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
Tenga en cuenta que si envía algo como parámetro para v_first_parameter a ese procedimiento, utilizará el valor que envió y no el predeterminado.