2014-02-26 46 views

回答

3

不同的是,子程序標題具有與實際參數當子程序被調用替換形式參數

create or replace function f(
    p_x in varchar2 /* a formal parameter */ 
,p_y in varchar2 /* a formal parameter */ 
) return varchar2 /* a formal parameter */ 
is 
begin 
    return p_x || p_y; 
end; 

declare 
    v_z varchar2(10); 
    v_x constant varchar2(1) := 'X'; 
begin 
    v_z := f(v_x, 'Y'); /* actual parameters */ 
end; 

的形式參數(可以使用,但約束亞型)無約束和還包括有關參數模式和可能的默認值的信息,這些信息在聲明變量時不相關。

形式參數和實際參數的數據類型不一定相同,但是兼容

還有很多其他的細節,但它們可以從PL/SQL Language Reference的章節PL/SQL Subprograms中讀取。詳見子程序參數

我不知道爲什麼形式參數必須是無約束的,但我對此非常滿意,因爲它從子程序頭中刪除(不必要的)細節,使其更加抽象。

相關問題