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

 更新时间:2017年06月17日 10:16:00   投稿:jingxian  
下面小编就为大家带来一篇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 rac案例讲解

    Oracle rac案例讲解

    这篇文章主要介绍了Oracle rac案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Oracle数据库的字段约束创建和维护示例

    Oracle数据库的字段约束创建和维护示例

    本篇文章主要介绍了Oracle数据库的字段约束创建和维护示例,可以创建,添加,删除等约束,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • 浅析新建Oracle数据库的三种方法

    浅析新建Oracle数据库的三种方法

    以下是对新建Oracle数据库的三种方法进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • oracle创建dblink方法示例

    oracle创建dblink方法示例

    这篇文章主要介绍了oracle创建dblink方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Oracle查看表空间使用率以及爆满解决方案详解

    Oracle查看表空间使用率以及爆满解决方案详解

    在日常的oralce使用中最长遇到的问题就是oralce的表空间满了,数据无法写入报错,下面这篇文章主要给大家介绍了关于Oracle查看表空间使用率以及爆满解决的相关资料,需要的朋友可以参考下
    2022-07-07
  • 教你使用PLSQLDeveloper14连接Oracle11g的详细过程

    教你使用PLSQLDeveloper14连接Oracle11g的详细过程

    今天给大家带来一篇教程关于用PLSQLDeveloper14连接Oracle11g的详细过程,本文分步骤通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧
    2021-09-09
  • Oracle重建控制文件的实例教程

    Oracle重建控制文件的实例教程

    前些天在做Oracle数据库恢复测试时,因为一些异常操作导致控制文件出了问题,数据库无法正常使用,下面这篇文章就来给大家介绍了关于Oracle重建控制文件的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-05-05
  • Oracle Users表空间重命名问题解决

    Oracle Users表空间重命名问题解决

    这篇文章主要介绍了Oracle Users表空间重命名问题,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • oracle适配器连接不上的解决办法

    oracle适配器连接不上的解决办法

    racle 的Developer连接不上报错:listener does not currently know of SID given in connect descriptor,如何解决呢?下面小编给大家分享oracle适配器连接不上的解决办法,需要的朋友可以参考下
    2015-10-10
  • Oracle Max函数使用中出现的问题

    Oracle Max函数使用中出现的问题

    在Oracle Max函数使用中,会出现一些问题,本文将介绍解决方法,需要的朋友可以了解下
    2012-11-11

最新评论