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语句中调用,存储过程不能.
相关文章
oracle ORA-00988 missing or invalid password 错误
在设置数据库实例的密码时,注意不要以数字开头,否则您将会遇到 ORA-00988 missing or invalid password (口令缺失或无效) 错误2015-01-01
Maven中央仓库正式成为Oracle官方JDBC驱动程序组件分发中心(推荐)
这篇文章主要介绍了Maven中央仓库正式成为Oracle官方JDBC驱动程序组件分发中心,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07
Centos7下oracle12c的安装与配置图文教程(详细)
这篇文章主要介绍了Centos7下oracle12c的安装与配置教程(详细),本文图文并茂通过实例代码相结合给大家讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-11-11
深入探讨:oracle中row_number() over()分析函数用法
本篇文章是对oracle中row_number() over()分析函数的用法进行了详细的分析介绍,需要的朋友参考下2013-05-05


最新评论