28、PLSQL 函数
Update date:
函数 Function
1、函数 和 过程的区别
第一 关键字不同 函数是Function 过程是 procedure
第二 函数有返回值类型 和 返回值 过程没有
第三 调用方式不同 过程可以直接在plsql中调用 函数必须组成表达式才能调用
2、函数的语法
create or replace function 函数名(参数列表) return 具体的type
is
begin
if 条件 then
return 值;
end if;
return 值;
end;
/
3、设计一个plsql 函数 有两个整数参数 返回两个参数的最大值
create or replace function getmax(var_x number,var_y number) return number
is
begin
if var_x < var_y then
return var_y;
end if;
return var_x;
end;
/
4、如何调用
select getmax(1,100) from dual;
begin
dbms_output.put_line(getmax(200,999));
if 100<getmax(1,999) then
dbms_output.put_line('call function');
end if;
end;
5、要求设计一个plsql 的函数 有两个整数参数 返回两个参数的最大值 并且 把两个参数的和存入第二个参数中。 调用函数 验证功能。
create or replace function getmax_and_sum(
var_x number,var_y in out number)return number
is
begin
if var_x < var_y then
var_y:=var_x+var_y;
return var_y-var_x;
else
var_y:=var_x+var_y;
return var_x;
end if;
end;
/
------------------------------------------------------------------------------------------
create or replace function getmax_and_sum(
var_x number,var_y in out number)return number
is
var_t number;
begin
var_t:=var_y;
var_y:=var_x+var_y;
if var_x < var_t then
return var_t;
else
return var_x;
end if;
end;
/
------------------------------------------------------------------------------------------
declare
var_y number:=1;
var_x number:=99;
var_res number:=0;
begin
var_res:=getmax_and_sum(var_x,var_y);
dbms_output.put_line(var_res);
dbms_output.put_line(var_y);
end;
/