存储过程

1、定义:存储过程、存储函数是指在存储在数据库中供所有用户程序调用的子程序
2、语法:
     create or replace procedure 过程名
     as 说明部分
     begin
          PLSQL子程序体
     end
3、例子:
     create or replace procedure sayhelloworld
     as
     begin
       dbms_output.put_line("helloworld");
     end
4、调用存储过程的两种方式:
   <1>exec sayhelloworld();
   <2>begin
              sayhelloworld();
           end
5、带参数的存储过程
    例子:给指定的员工涨100块钱的工资,并打印涨前和涨后的工资
      create or replace procedure raisesalary(eno in number)
     as
       psal emp.sal %type;  --定义一个变量保存涨前的薪水
     begin
       select sal into psal from emp where empno=eno;  --得到员工涨前的薪水
       update emp set sal=sal+100 where empno=eno;   --给员工涨100块钱的薪水,在这里,我们一般不commit和rollback,而在调用的时候进行事务的提交和回滚
       dbms_output.put_line("涨前:"||psal||"涨后:"||(psal+100));  --打印涨前涨后的薪水
     end
6、存储过程的调试

7、存储函数
   create or replace function 函数名(参数列表)
   return 函数值类型
   as 
   PLSQL子程序体
 8、 例子:查询某个员工的年收入
    create or replace function queryempincome(eno in number)
    return number
    as
       psal emp.sal%type;  --定义变量保存员工的薪水
       pcomm emp.comm%type;   --定义变量保存员工的奖金
    begin
       select sal,comm into psal,pcomm from emp where empno=eno;  --得到该员工的月薪和奖金
    return sal*12+pcomm;   --直接返回年收入
    end
9、in和out参数
    存储过程和存储函数的区别是是否有返回值,但他们都可以通过out指定一个或多个输出参数,我们可以利用out参数,在过程和函数中实现返回多个值
10、例子:查询某个员工的姓名、月薪和职位
     原则:如果只存在一个返回值,用存储函数,否则,用存储过程
     create or replace procedure queryempinform(eno in number,
                                                                                  pname out varchar2,
                                                                                  psal out number,
                                                                                  pjob out varchar2)
      as
      begin
          select ename,sal,empjob into pename,psal,pjob from emp where empno=eno;
      end
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值