Tidak ada mekanisme pemicu ON COMMIT di Oracle. Namun ada solusi:
-
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).
-
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.