2012-08-08 44 views
0

例如,我將創建此過程如何創建過程,您可以選擇哪些屬性使用

Create procedure MyProc (name varchar2:='', married varchar2:='', surname varchar2:='') IS 
... 
... 
... 
END; 

,現在我想有時使用這樣的

MyProc (name=>'George', married=>'NO'); 

,有些時候我需要使用像這樣

MyProc (name=>'Warren', surname=>'Palas'); 

,有些時候我需要使用它像這樣...

MyProc (name=>'Joey', married=>'YES', surname=>'BigJoey'); 

我該如何獲得此狀態?感謝您的每一個建議

+0

我會遠離(存儲)「YES」和「NO」作爲「布爾」值,並使用(字符)「1」(真)和「0」(假)代替。然後在你的存儲過程中,使用實際的'BOOLEAN'數據類型(不能存儲...)。 – 2012-08-08 15:11:23

回答

0

按照以下方式指定您的過程,並使用「=>」方法進行調用,您應該已經完成​​了這項工作。

PROCEDURE MyProc (name IN yourtable.name%type, 
married IN yourtable.married%type := NULL, 
surname IN yourtable.surname%type := NULL) 

通過默認參數在規範中它使參數「可選參數」。 無默認參數稱爲必需參數。

您也可以在程序包中指定您的程序並將其重載。 重載一個過程意味着在同一個包中創建具有相同名稱的多個過程。如何調用該過程將確定哪個過程實際上是被執行。

決定走哪條路可以取決於每種呼叫類型所需的處理之間的不相似程度。一般而言,重載是代碼抽象,結構化和維護目的的良好實踐。

相關問題