承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

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

管理员 2023-07-05 09:29:11 互联网圈 13 ℃ 0 评论 3600字 收藏

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存储进程和存储函数创建方法(详解)

https://www.wanzijz.com/view/61841.html

X

截屏,微信识别二维码

微信号:weimawl

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

打开微信