Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle Mutating Trigger

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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng tiện ích xuất dữ liệu bơm dữ liệu của Oracle để tạo tệp kết xuất trong máy cục bộ?

  2. Tìm hiểu ký hiệu tiền tệ mà phiên của bạn sử dụng trong Oracle

  3. Tự động tăng trong Oracle mà không cần sử dụng trình kích hoạt

  4. Hàm HEXTORAW () trong Oracle

  5. Tạo chuỗi Oracle bắt đầu bằng chữ và số