oracle复习体系五--exception,trigger

--异常

declare

v_ename varchar2(50);

begin

  select ename into v_ename from emp;

  exception

  when too_many_row then

   v_name='too_many_row exception';

end;

 

--自定义异常

declare

v_excep exception;

begin

update set ename='tina' where empno=10000;

if sql%notfound then  --如果没有更新数据

raise v_excep  --throw exception

end if;

exception

when v_excep then

dbms_output.put_line('.............');

end;

 

 

 

--trigger

create table temps (id number(5),desc varchar2(200));

 

--simple

create or replace trigger t_emp

before insert or update of ename --在插入和更新ename字段的时候触发触发器

on emp --数据对象

for each row  --行级触发器 在一次操作表的语句中,每操作成功一行就会触发一次;

          --不写的话,表示是表级触发器,则无论操作多少行,都只触发一次

begin

insert into temps vlaus(:old.empno,:old.ename);

end;

 

 

--when()

create or replace trigger t_emp

before insert  or update of ename

on emp

for each row

when(old.empno<>0001)  --满足该条件才会执行触发器

begin

insert into temps vlaus(:old.empno,:old.ename);

end;

 

 

--INSERTING,UPDATING

create or replace trigger t_emp

before insert  or update of ename

on emp

for each row

when(old.empno<>0001)

begin

if INSERTING then   --根据当前操作分别作处理 (插入操作)

insert into temps vlaus(:old.empno,:old.ename);

elsif UPDATING then  (修改操作)

update temps set desc =:new.ename where id=:old.empno;

end if;

end;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值