Zunächst einmal denke ich, dass das Paket ungültig wäre, Sie versuchen, Ihrer Paketspezifikation einen Körper für Ihre Funktion hinzuzufügen. Die ganze Idee ist jedoch gut und sollte funktionieren, wenn sie richtig gemacht wird, erstellen Sie zum Beispiel ein 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;
Und ein Paketkörper:
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;
Dann möchten Sie vielleicht den Aufruf Ihrer Prozedur machen:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
Bitte beachten dass, wenn Sie irgendetwas als Parameter für v_first_parameter an diese Prozedur senden, es den Wert verwendet, den Sie gesendet haben, und nicht den Standardwert.