Như @San đã chỉ ra, trình kích hoạt cấp hàng trên persons
nói chung không thể truy vấn persons
bảng.
Bạn sẽ cần hai trình kích hoạt, trình kích hoạt cấp hàng có thể xem giới tính cũ và mới và trình kích hoạt cấp tuyên bố có thể thực hiện số lượng. Bạn cũng có thể, nếu đang sử dụng 11g, hãy tạo một trình kích hoạt kết hợp với cả khối cấp hàng và cấp câu lệnh.
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;