Som @San påpekar, en utlösare på radnivå på persons
kan i allmänhet inte fråga persons
bord.
Du skulle behöva två utlösare, en utlösare på radnivå som kan se det gamla och nya könet och en utlösare på uttalandenivå som kan räkna. Du kan också, om du använder 11g, skapa en sammansatt trigger med block på både rad- och satsnivå.
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;