利用触发器来触发一个PROCEDURE,
把修改数据的动作写在PROCEDURE来完成,
如果写入的字表被删掉了,或是其他问题发生了,
在PROCEDURE后面加入
exception
when no_data_found then
null ;
WHEN OTHERS THEN
NULL ;
这样就可以处理你遇到的情况了。
当然这样效率也许有些受到影响。
把修改数据的动作写在PROCEDURE来完成,
如果写入的字表被删掉了,或是其他问题发生了,
在PROCEDURE后面加入
exception
when no_data_found then
null ;
WHEN OTHERS THEN
NULL ;
这样就可以处理你遇到的情况了。
当然这样效率也许有些受到影响。
before insert or update on 主表
for each row
declare
num number;
begin
select count(1) into num from user_table where table_name='子表';
if num>0 then
update 子表 set col1_name=:new.col1_name,..... where id=:new.id;
end if;
end;
/
create trigger name_tri
before insert or update on Ö÷±í
for each row
declare
num number;
sql_str varchar(1000);
begin
select count(1) into num from user_table where table_name='子表';
if num>0 then
sql_str := 'update 子表 set col1_name='||:new.col1_name||' where id='||:new.id;
execute immediate sql_str;
end if;
end;
/