procedures 和 functions之間的最大的不同是:不同的觸發(fā)方法 和 不同的使用需求(或是目地)。 Procedures沒有返回值。使用CALL調(diào)用procedures,以執(zhí)行修改表或是處理檢索到的記錄。 Function有返回值。在一個表達式中觸發(fā),該值會返回到調(diào)用它的表達式中。更確切的說,一個function在表達式中的用法,其當于一個常量,一個內(nèi)置的function,或是一個指向表列的引用。 procedures 和 functions 的創(chuàng)建語法亦有不同之處: procedures 的參數(shù)可以定義為input-only,output-only,或是input and output。這就意味著procedures可以通過output 參數(shù)將值傳送到外面。這些值可以在CALL語句后面的statememts被訪問或是使用。 function只有input參數(shù)。于是,雖然procedures 和 functions都有相同的參數(shù),但是procedures 參數(shù)的聲明,還是與function有著不同。 在functions 中有返回值,所以在function definition中必須要有一個REUTRNS來指示返回值的數(shù)據(jù)類型。同時,在function body中必須至少要有一個RETURN來將值返回給調(diào)用者。 在procedure definition中不會有RETURNS和RETURN
發(fā)表評論