zoukankan      html  css  js  c++  java
  • 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语句中调用,存储过程不能.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
       
  • 相关阅读:
    微服务架构的设计原则
    分布式锁
    银行卡Bin和Logo
    Docker部署Jenkins
    云服务器配置 docker java mysql mongodb redis nginx jenkins 环境
    Mybatis使用心德
    CTO 技能图谱
    React 面试问题
    Dart语法学习
    第一篇博客
  • 原文地址:https://www.cnblogs.com/cocosili/p/6963774.html
Copyright © 2011-2022 走看看