1. 程式人生 > >oracle ——function函式與procedure的區別

oracle ——function函式與procedure的區別

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體執行,而函式必須通過表示式來執行