加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > Oracle > 正文

Oracle存储过程和存储函数创建方法(详解)

发布时间:2020-05-22 12:18:37 所属栏目:Oracle 来源:互联网
导读:下面小编就为大家带来一篇Oracle存储过程和存储函数创建方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

select * from emp;

-----------------存储过程------------------------

--定义

create[or replace] procedure 存储过程名称(参数名 [in]/out 数据类型)
is/as
begin

--逻辑表达式


end [存储过程名称];

--定义存储过程计算年薪,并答应输出

create or replace procedure proc_salyears(v_no in number)
is
sal_years number(9,2);
begin

--计算年薪


select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;

--输出


dbms_output.put_line(sal_years);
end;

--调用存储过程

方式1:


call proc_salyears(7788);

方式2:


begin
proc_salyears(7369);
end;

--out参数的存储过程

--计算年薪并返回

create or replace procedure proc_salyears(v_no in number,sal_years out number)
is
begin

--计算年薪


select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
end;

--调用存储过程


declare
v_sal number(9,2);
begin
proc_salyears(7876,v_sal);
dbms_output.put_line(v_sal);
end;

-----------------存储函数------------

--定义

create or replace function 存储函数名(参数名 in/out 数据类型)
return 数据类型
is|as
begin
return 具体的数据;
end [存储函数名称];

--定义存储函数名计算年薪

create or replace function fun_salyears(f_no number)
return number
is
sal_years number(9,2);
begin
select sal*12+nvl(comm,0) into sal_years from emp where empno=f_no;
return sal_years;
end ;

--使用存储函数

declare
sal_yeats number(9,2);
begin
sal_yeats := fun_salyears(7876);
dbms_output.put_line(sal_yeats);
end;

--可简写

begin
dbms_output.put_line(fun_salyears(7369));
end;

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

存储过程多用于项目之间的数据共享,存储函数多被存储过程调用.

存储函数可以再sql语句中调用,存储过程不能.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读