Comme le souligne @San, un déclencheur au niveau de la ligne sur persons
ne peut généralement pas interroger les persons
tableau.
Vous auriez besoin de deux déclencheurs, un déclencheur au niveau de la ligne qui peut voir l'ancien et le nouveau sexe et un déclencheur au niveau de l'instruction qui peut faire le décompte. Vous pouvez également, si vous utilisez 11g, créer un déclencheur composé avec des blocs au niveau de la ligne et de l'instruction.
create or replace trigger trg_stmt
after update
on persons
declare
l_cnt integer;
begin
select count(*)
into l_cnt
from persons;
dbms_output.put_line( 'There are now ' || l_cnt || ' rows.' );
end;
create or replace trigger trg_row
after update
on persons
for each row
begin
if( :new.gender != :old.gender )
then
dbms_output.put_line( 'Old gender = ' || :old.gender || ', new gender = ' || :new.gender );
end if;
end;