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