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