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

Làm thế nào để xác định một kích hoạt ON COMMIT trong Oracle?

Không có cơ chế kích hoạt ON COMMIT trong Oracle. Tuy nhiên, có những cách giải quyết:

  1. Bạn có thể sử dụng chế độ xem hiện thực hóa với ON COMMIT REFRESH và thêm trình kích hoạt vào MV này. Điều này sẽ cho phép bạn kích hoạt logic khi bảng cơ sở đã được sửa đổi tại thời điểm cam kết . Nếu trình kích hoạt phát sinh lỗi, giao dịch sẽ được khôi phục (bạn sẽ mất tất cả các thay đổi không giới hạn).

  2. Bạn có thể sử dụng DBMS_JOB để trì hoãn một hành động sau khi cam kết. Đây sẽ là một hành động không đồng bộ và có thể được mong muốn trong một số trường hợp (ví dụ:khi bạn muốn gửi email sau khi giao dịch thành công). Nếu bạn quay trở lại giao dịch chính, công việc sẽ bị hủy. Công việc và phiên chính độc lập:nếu công việc không thành công, giao dịch chính sẽ không được khôi phục.

Trong trường hợp của bạn, bạn có thể sử dụng tùy chọn (1). Tôi người phân tích không thích viết mã logic nghiệp vụ trong trình kích hoạt vì nó thêm nhiều phức tạp nhưng về mặt kỹ thuật, tôi nghĩ nó có thể làm được.



  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 cách nào để tạo một bảng Oracle với các bảng kiểu đối tượng lồng nhau?

  2. Làm cách nào để chia một cột varchar thành nhiều giá trị trong SQL?

  3. Giới thiệu về con trỏ tham chiếu PL / SQL trong cơ sở dữ liệu Oracle

  4. Làm cách nào để tạo (hoặc lấy) tập lệnh ddl trên một bảng hiện có trong oracle? Tôi phải tạo lại chúng trong Hive

  5. Tạo một phạm vi ngày bằng SQL