给你一个例子,没有测试,自己测试一下吧
知道思路了应当就简单了
CREATE OR REPLACE TRIGGER TR_NAME
AFTER UPDATE ON URTABLE
FOR EACH ROW
begin
insert into b
  select * from a where a.rowid=:old.rowid;
end TR_NAME;

解决方案 »

  1.   

    oracle的行级触发器中无法对正在修改的表进行操作,所以这个问题最好用行级触发器、表级触发器和包(或者临时表)来解决。
    具体的思路是在行级触发器中判断status_id的状态改变,把符合条件的纪录的主键写入包中的变量(或者插入临时表中),然后用表级触发器根据包中的变量(或者临时表中的纪录)把纪录从a表中插入到b表,最后删除a表中的纪录。
      

  2.   

    楼上这位老哥说的比较深奥,但我感觉通过trigger可以完成这个工作,