• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle存储过程和存储函数创建方法(详解)
    POST TIME:2021-10-18 21:53

    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数据库中sql%notfound的用法详解
    下一篇:PL/SQL中编写Oracle数据库分页的存储过程
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信