Pertama-tama, saya pikir paket itu tidak valid, Anda mencoba menambahkan badan untuk fungsi Anda dalam spesifikasi paket Anda. Namun keseluruhan idenya bagus dan seharusnya berhasil, jika dilakukan dengan benar, misalnya, buat paket:
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;
Dan badan paket:
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;
Maka Anda mungkin ingin melakukan panggilan prosedur Anda:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
Harap diperhatikan bahwa jika Anda mengirim sesuatu sebagai parameter untuk v_first_parameter ke prosedur itu, itu akan menggunakan nilai yang Anda kirim dan bukan nilai default.