सबसे पहले, मुझे लगता है कि पैकेज अमान्य होगा, आप अपने पैकेज विनिर्देश में अपने फ़ंक्शन के लिए एक बॉडी जोड़ने का प्रयास कर रहे हैं। हालाँकि पूरा विचार अच्छा है और इसे काम करना चाहिए, अगर सही किया जाए, उदाहरण के लिए, एक पैकेज बनाएँ:
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;
और एक पैकेज बॉडी:
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;
तब आप अपनी प्रक्रिया को कॉल करना चाह सकते हैं:
begin
xyz.abc;
xyz.abc(); -- This is the same thing as above
xyz.abc(v_second_param => 'Maybe');
end;
कृपया ध्यान दें कि यदि आप उस प्रक्रिया के लिए v_first_parameter के पैरामीटर के रूप में कुछ भी भेजते हैं, तो यह आपके द्वारा भेजे गए मान का उपयोग करेगा न कि डिफ़ॉल्ट मान का।