Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara mendefinisikan pemicu ON COMMIT di Oracle?

Tidak ada mekanisme pemicu ON COMMIT di Oracle. Namun ada solusi:

  1. Anda bisa menggunakan tampilan terwujud dengan ON COMMIT REFRESH dan menambahkan pemicu ke MV ini. Ini akan memungkinkan Anda untuk memicu logika ketika tabel dasar telah dimodifikasi pada saat komit . Jika pemicu memunculkan kesalahan, transaksi akan dibatalkan (Anda akan kehilangan semua perubahan yang belum dikomit).

  2. Anda dapat menggunakan DBMS_JOB untuk menunda tindakan setelah komit. Ini akan menjadi tindakan asinkron dan mungkin diinginkan dalam beberapa kasus (misalnya ketika Anda ingin mengirim email setelah transaksi berhasil). Jika Anda memutar kembali transaksi utama, pekerjaan akan dibatalkan. Pekerjaan dan sesi utama adalah independen:jika pekerjaan gagal, transaksi utama tidak akan dibatalkan.

Dalam kasus Anda, Anda mungkin bisa menggunakan opsi (1). Saya pribadi tidak suka membuat kode logika bisnis dalam pemicu karena menambah banyak kerumitan tetapi secara teknis saya pikir itu bisa dilakukan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle tidak menghapus kursor setelah menutup set hasil

  2. Mengambil rekor dengan tanggal maksimal

  3. Menetapkan nilai LIMIT saat menggunakan pengumpulan massal

  4. Bagaimana cara mendapatkan konten tekstual dari BLOB di Oracle SQL

  5. Buku Putih Pengoptimal 12c lainnya