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

所属分类: 数据库 / oracle 阅读数: 1520
收藏 0 赞 0 分享

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密码过期如何取消密码180天限制及密码180天过期,账号锁住的问题

这篇文章主要介绍了Oracle密码过期如何取消密码180天限制及密码180天过期,账号锁住的问题,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle 10g利用amdu抽取数据文件的方法教程

这篇文章主要给大家介绍了关于Oracle 10g利用amdu抽取数据文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

oracle查询锁表及解锁,修改表字段名与复制表结构和数据的方法

今天小编就为大家分享一篇关于oracle查询锁表及解锁,修改表字段名与复制表结构和数据的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Oracle数据库url连接最后一个orcl代表的是配置的数据库SID

今天小编就为大家分享一篇关于Oracle数据库url连接最后一个orcl代表的是配置的数据库SID,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Oracle数据库自动备份脚本分享(超实用)

这篇文章主要给大家分享介绍了关于Oracle数据库自动备份脚本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Oracle统计信息的导出导入测试示例详解

这篇文章主要给大家介绍了关于Oracle统计信息的导出导入测试的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Oracle基础:通过sqlplus执行sql语句后的结果进行判断

今天小编就为大家分享一篇关于Oracle基础:通过sqlplus执行sql语句后的结果进行判断,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

运行在容器中的Oracle XE-11g

今天小编就为大家分享一篇关于运行在容器中的Oracle XE-11g,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Oracle查询sql错误信息的控制和定位

今天小编就为大家分享一篇关于Oracle查询sql错误信息的控制和定位,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Oracle基础多条sql执行在中间的语句出现错误时的控制方式

今天小编就为大家分享一篇关于Oracle基础多条sql执行在中间的语句出现错误时的控制方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享
查看更多