测试一下自治事务

SQL> create table test(t number);

表已创建。

SQL>

SQL> create or replace view bb as select * from test;

视图已建立。

SQL>

使用建立替代触发器,并在其中应用自治事务(此种触发器只能应用在view)
SQL> show err
没有错误。
SQL> create or replace trigger aa
  2  instead of insert or delete or update on bb
  3  declare
  4   pragma autonomous_transaction;
  5  begin
  6   if INSERTING then
  7    insert into test values(:new.t);
  8    commit;
  9   elsif UPDATING then
 10    update test
 11     set t=:new.t
 12     where t=:old.t;
 13    commit;
 14   else
 15    delete from test
 16     where t=:old.t;
 17    commit;
 18   end if;
 19  
 20  -- commit;
 21  end;
 22  /

触发器已创建

SQL> show err
没有错误。
SQL>

SQL> select * from test;

未选定行

SQL>


SQL> create or replace trigger aaa
  2  before insert or delete or update on test
  3  begin
  4   raise_application_error(-20000,'Cannot Insert/Update/Delete Directly.');
  5  end;
  6  /

触发器已创建

已用时间:  00: 00: 00.40
SQL>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值