oracle对象之存储函数

Posted 学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

以上是关于oracle对象之存储函数的主要内容,如果未能解决你的问题,请参考以下文章

Oracle系列:(29)存储过程和存储函数

如何将 r ggplot 图存储为 html 代码片段

编程开发之--Oracle数据库--存储过程和存储函数

JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数

JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数

oracle数据库之存储函数和过程