主页 > 知识库 > Oracle存储过程和存储函数创建方法(详解)

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

热门标签:AI电销 网站排名优化 呼叫中心市场需求 Linux服务器 地方门户网站 铁路电话系统 服务外包 百度竞价排名

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 存储过程、函数和触发器用法实例详解
  • windows中oracle存储过程加密的实例代码
  • Oracle带输入输出参数存储过程(包括sql分页功能)
  • oracle中print_table存储过程实例介绍
  • Mybatis调用Oracle存储过程的方法图文详解
  • 详解Oracle调试存储过程
  • Oracle存储过程及调用
  • Oracle存储过程、包、方法使用总结(推荐)
  • Oracle生成单据编号存储过程的实例代码
  • Oracle数据库创建存储过程的示例详解

标签:崇左 衡水 兰州 湘潭 仙桃 湖南 铜川 黄山

巨人网络通讯声明:本文标题《Oracle存储过程和存储函数创建方法(详解)》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266