• oracle对象之存储函数


    存储函数

    create or replace function 函数名(Name in type, Name out type, ...) return 数据类型 is

      结果变量 数据类型;

    begin

      return(结果变量);

    end[函数名];

    存储过程和存储函数的区别

    一般来讲,过程和函数的区别在于函数可以有一个返回值;而过程没有返回值。

    但过程和函数都可以通过out指定一个或多个输出参数。我们可以利用out参数,在过程和函数中实现返回多个值。
    一般来讲,有一个返回值的时候用存储函数,多个返回值用存储过程。
     
    范例:使用存储函数来查询指定员工的年薪
     
     1 create or replace function empincome(eno in emp.empno%type) return number is
     2  
     3   psal  emp.sal%type;
     4  
     5   pcomm emp.comm%type;
     6  
     7 begin
     8  
     9   select t.sal into psal from emp t where t.empno = eno;
    10  
    11   return psal * 12 + nvl(pcomm, 0);
    12  
    13 end;
     
    使用存储过程来替换上面的例子
     1  
     2 create or replace procedure empincomep(eno in emp.empno%type, income out number) is
     3  
     4   psal emp.sal%type;
     5  
     6   pcomm emp.comm%type;
     7  
     8 begin
     9  
    10   select t.sal, t.comm into psal, pcomm from emp t where t.empno = eno;
    11  
    12   income := psal*12+nvl(pcomm,0);
    13  
    14 end empincomep;
    调用:
     1  
     2 declare
     3  
     4   income number;
     5  
     6 begin
     7  
     8   empincomep(7369, income);
     9  
    10   dbms_output.put_line(income);
    11  
    12 end;
  • 相关阅读:
    前端埋点2怎么埋点
    .net core
    Qto_DoorBaseQuantities
    Qto_WallBaseQuantities
    Qto_SlabBaseQuantities
    Qto_RampFlightBaseQuantities
    Pset_WallCommon
    Pset_StairCommon
    matlab 矩阵变换
    Qto_CoveringBaseQuantities
  • 原文地址:https://www.cnblogs.com/anzhi/p/7568237.html
Copyright © 2020-2023  润新知