PL_SQL基础--续六

函数和触发器:

function:函数--有参数和返回值。
 create or replace function sal_tax
   (v_sal number)
   return number
 is
 begin
   if(v_sal < 2000) then
  return 0.10;
   elsif(v_sal < 2750) then
  return 0.15;
   else
  return 0.20;
   end if;
 end;

 调用函数--类比组合函数:
 select lower(ename),sal_tax(sal) from emp;

 

触发器(trigger):--某个表的某些操作触发触发器内的程式执行。
 1.create table emp2_log
   (
   uname varchar2(20);
   action varchar2(10);
   atime date
   )  ;
 2.建触发器 after ,before--触发的时机。for each row --针对每条记录的触发。
 create or replace trigger trig
   after insert or delete or update on emp2 for each row
 begin
   if inserting then
  insert into emp2_log values(USER,'insert',sysdate);
   elsif updating then
  insert into emp2_log values(USER,'update',sysdate);
   elsif deleting then
  insert into emp2_log values(USER,'delete',sysdate);
   end if;
 end;

 drop trigger trig;
 触发器的副作用,一般不使用,了解。--万不得已的情况下使用。
  ---:NEW,:OLD是记录的新状态和旧状态。系统默认名。
 create or replace trigger trig
  after update on dept for each row
 begin
  update emp set deptno = :NEW.deptno where deptno = :OLD.deptno;
 end;
  ---用来更新有约束条件的记录,用到此数据的跟着更新。先触发触发器,再检查约束条件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值