阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle对象之存储函数

122次阅读
没有评论

共计 910 个字符,预计需要花费 3 分钟才能阅读完成。

存储函数

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

结果变量 数据类型;

begin

return(结果变量);

end[函数名];

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

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

但过程和函数都可以通过 out 指定一个或多个输出参数。我们可以利用 out 参数,在过程和函数中实现返回多个值。

一般来讲,有一个返回值的时候用存储函数,多个返回值用存储过程。

范例:使用存储函数来查询指定员工的年薪

create or replace function empincome(eno in emp.empno%type) return number is
 
  psal  emp.sal%type;
 
  pcomm emp.comm%type;
 
begin
 
  select t.sal into psal from emp t where t.empno = eno;
 
  return psal * 12 + nvl(pcomm, 0);
 
end;

使用存储过程来替换上面的例子

create or replace procedure empincomep(eno in emp.empno%type, income out number) is
 
  psal emp.sal%type;
 
  pcomm emp.comm%type;
 
begin
 
  select t.sal, t.comm into psal, pcomm from emp t where t.empno = eno;
 
  income := psal*12+nvl(pcomm,0);
 
end empincomep;

调用:

declare
 
  income number;
 
begin
 
  empincomep(7369, income);
 
  dbms_output.put_line(income);
 
end;

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-09/147149.htm

 

 

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计910字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中