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