天天看点

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体执行,而函数必须通过表达式来执行