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

Bagaimana memanggil Prosedur yang menggunakan tabel yang sama setelah pemicu

Anda tidak bisa.

Pemicu tingkat baris normal tidak dapat mengkueri tabel tempat pemicu ditetapkan karena hal itu akan memunculkan pengecualian tabel yang bermutasi. Saya berasumsi itu sebabnya Anda mendeklarasikan pemicu Anda untuk menggunakan transaksi otonom (transaksi otonom untuk apa pun selain logging persisten hampir pasti merupakan kesalahan). Namun, jika Anda melakukannya, pemicu Anda tidak dapat melihat perubahan tanpa komitmen yang dibuat oleh transaksi pemicu. Itulah masalah yang Anda hadapi sekarang.

Alternatifnya adalah menggunakan pemicu gabungan . Anda akan mendeklarasikan kumpulan test_table.type_%type , Anda akan menambahkan nilai yang berubah ke koleksi ini di bagian tingkat baris pemicu Anda, lalu Anda akan mengulangi elemen dalam koleksi di bagian setelah pernyataan pemicu Anda. Pemicu tingkat pernyataan diizinkan untuk menanyakan tabel tempat pemicu didefinisikan sehingga Anda dapat memanggil prosedur Anda dari bagian setelah pernyataan pemicu majemuk Anda.



  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 SQL:Gabungkan baris menjadi satu baris

  2. Koleksi PL/SQL:Tabel Bersarang di Database Oracle

  3. 50 Nuansa Ujian Sertifikasi Database Oracle

  4. Spring Batch ORA-08177:tidak dapat membuat serial akses untuk transaksi ini saat menjalankan pekerjaan tunggal, tingkat isolasi SERIALIZED

  5. Mengkonfigurasi koneksi antara klien dan server Oracle 10g