Trước hết, tôi nghĩ rằng gói đó sẽ không hợp lệ, bạn đang cố thêm một phần thân cho hàm của mình trong đặc tả gói. Tuy nhiên, toàn bộ ý tưởng là tốt và nó sẽ hoạt động, nếu được thực hiện đúng, chẳng hạn, hãy tạo một gói:
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;
Và một phần thân gói:
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;
Sau đó, bạn có thể muốn thực hiện quy trình của mình:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
Xin lưu ý rằng nếu bạn gửi bất kỳ thứ gì dưới dạng tham số cho v_first_parameter tới thủ tục đó, nó sẽ sử dụng giá trị bạn đã gửi chứ không phải giá trị mặc định.