函数 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;
/