请各位大侠帮看一下这个oracle触发器那里出错了
ale12 2012-05-15 09:33:07 create or replace trigger test1
after insert or update or delete
on libfile2
for each row
--declare
-- PRAGMA AUTONOMOUS_TRANSACTION;
begin
if deleting then
declare
vol_ownervol libvol2.keyword%type;
file_keyword libfile2.keyword%type;
begin
select :old.ownervol into vol_ownervol from dual;
-- select :old.keyword into file_keyword from dual;
update libvol2 set f2=(select sum(f8) from libfile2 where ownervol=vol_ownervol),f3=(select count(*) from libfile2 where ownervol=vol_ownervol) where libvol2.keyword = vol_ownervol;
--commit;
end;
else
declare
vol_ownervol libvol2.keyword%type;
file_keyword libfile2.keyword%type;
begin
select :new.ownervol into vol_ownervol from dual;
--select :new.keyword into file_keyword from dual;
update libvol2 set f2=(select sum(f8) from libfile2 where ownervol=vol_ownervol),f3=(select count(*) from libfile2 where ownervol=vol_ownervol) where libvol2.keyword = vol_ownervol;
--commit;
end;
end if;
end;
能正常编译;但触发时出错:ora-04091 表xx发生了变化,触发器/函数不能读它