微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle存储过程和存储函数

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能sql 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

创建存储过程语法:

create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)]

AS

begin

PLsql子程序体;

End;

或者

create [or replace] PROCEDURE 过程名[(参数名 in/out 数据类型)]

is

begin

PLsql子程序体;

End 过程名;

范例1:给指定的员工涨100工资,并打印出涨前和涨后的工资

分析:我们需要使用带有参数的存储过程

createorreplaceprocedureaddSal1(eno innumber) is

pemp myemp%rowtype;

begin

select* intopemp frommyemp whereempno = eno;

updatesetsal = sal + 100dbms_output.put_line('涨工资前'|| pemp.sal || '涨工资后'|| (pemp.sal + ));

endaddSal1;

调用

-- Call the procedure

addsal1(eno => 7902);

commit;

4.存储函数

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

结果变量 数据类型;

begin

return(结果变量);

end[函数];

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

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

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

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

functionempincome(eno emp.empno%typereturnpsal emp.sal%pcomm emp.comm%t.sal psal emp t t.empno = eno;

psal * 12+ nvl(pcomm,0);

;

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

empincomep(eno ,income outt.sal,t.comm psal,pcomm income := psal*+nvl(pcomm,128)">empincomep;

调用

declare

income empincomep(7369dbms_output.put_line(income);

;

原文地址:https://www.jb51.cc/oracle/209192.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐