oracle ——function函式與procedure的區別
阿新 • • 發佈:2019-01-06
function函式和上節講到的procedure差不多,定義結構差不錯,作用也差不多。
function函式的結構:
create or replace function 函式名 (傳入/傳出引數) return 返回型別 is
定義變數
begin
pl/sql體內容
end; //結束
從結構上來說,區別在於多了個return 返回型別,因此
區別:1,function函式是有返回值的,通過return返回或者out帶出,procedure通過out/in out 返回
2,在declare ...begin ..end;進行測試時,可以直接 用 變數名 :=函式名(引數); 而procedure則不行
例如:declare
total number(10);
begin
total :=get_scores; --為無參的函式名
end;
對於procedure只能為如下格式
declare
total number(10);
average number(10);
begin
get_scores(total,average );
end;
3,如上,sql語句中可以呼叫函式,但不能呼叫procedure
4,procedure是作為獨立的pl/sql體執行,而函式必須通過表示式來執行