Som @San påpeger, en trigger på rækkeniveau på persons
kan generelt ikke forespørge persons
tabel.
Du skal bruge to udløsere, en udløser på rækkeniveau, der kan se det gamle og nye køn, og en udløser på udsagnsniveau, der kan tælle. Du kan også, hvis du bruger 11g, oprette en sammensat trigger med blokke på både række- og sætningsniveau.
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;