Prima di tutto, penso che quel pacchetto non sarebbe valido, stai cercando di aggiungere un corpo per la tua funzione nelle specifiche del tuo pacchetto. Tuttavia l'intera idea è buona e dovrebbe funzionare, se fatta bene, ad esempio, crea un pacchetto:
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 un corpo del pacchetto:
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;
Quindi potresti voler effettuare la chiamata della tua procedura:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
Nota che se invii qualcosa come parametro per v_first_parameter a quella procedura, utilizzerà il valore che hai inviato e non quello predefinito.