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

Oracle 11g:Di PL/SQL apakah ada cara untuk mendapatkan info tentang baris yang dimasukkan dan diperbarui setelah pernyataan MERGE DML?

Tidak ada cara bawaan untuk mendapatkan jumlah penyisipan dan pembaruan yang terpisah, tidak. SQL%ROWCOUNT akan memberi tahu Anda jumlah baris yang digabungkan, seperti yang mungkin sudah Anda ketahui, tetapi tidak ada yang setara untuk mendapatkan nilai terpisah untuk sisipan dan pembaruan.

Artikel ini oleh Adrian Billington menunjukkan cara untuk mendapatkan informasi dengan menyertakan pemanggilan fungsi dalam penggabungan, yang mungkin menambahkan sedikit biaya tambahan.

Ada trik serupa, dan mungkin lebih sederhana, dari MichaelS di forum Oracle , yang tentu saja tidak bisa saya hargai sama sekali. Saya tergoda untuk mereproduksinya di sini tetapi saya tidak yakin apakah itu diizinkan, tetapi pada dasarnya menggunakan sys_context untuk mempertahankan hitungan, dengan cara yang hampir sama seperti yang dilakukan solusi Adrian dengan variabel paket. Saya akan menggunakan yang itu, karena lebih bersih dan menurut saya lebih mudah untuk diikuti dan dirawat.

Masih sangat dekat dengan jawaban hanya tautan tetapi saya juga tidak ingin menjiplak karya orang lain...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa koneksi dengan ekspresi dalam loop FOR, dijalankan hanya sekali?

  2. Cara Membuat VARRAY Sebagai Objek Database Di Database Oracle

  3. Kueri menggunakan pernyataan dalam kolom VARCHAR2

  4. Hapus Tajuk Kolom ke dalam file Teks Keluaran

  5. AUTONOMOUS_TRANSACTION