DUPLICATE_RECORD
adalah prosedur terbatas dan Anda tidak dapat menggunakannya di WHEN-VALIDATE-RECORD
pemicu (atau jenis lainnya yang sama).
Karena Anda harus menavigasi ke catatan berikutnya (jika Anda ingin menyalinnya), bahkan jika Anda memasukkan prosedur terbatas itu ke unit program PL/SQL lain, semuanya akan menyebar dan - akhirnya - memunculkan kesalahan yang sama. Jadi ... Anda kurang beruntung.
Bahkan jika Anda menulis prosedur (tersimpan) yang akan memasukkan baris "Jr" itu ke dalam database di suatu tempat di belakang layar, Anda harus mengambil nilai-nilai itu ke layar. Sebagai EXECUTE_QUERY
adalah cara untuk melakukannya, dan karena ini adalah prosedur terbatas (yang lain), itu juga tidak akan berhasil.
Jika Anda berencana untuk menghapus blok data dan mengisinya secara manual (dengan menggunakan loop), Anda harus menavigasi ke record berikutnya (dan selanjutnya, dan selanjutnya) dengan NEXT_RECORD
, dan itu lagi-lagi merupakan prosedur terbatas. Selain itu, jika itu adalah blok data (dan ya, memang demikian), Anda sebenarnya akan membuat duplikat untuk semua catatan setelah Anda menyimpan perubahan - baik itu akan gagal dengan pelanggaran batasan unik (yang bagus), atau Anda akan membuat duplikat (yang lebih buruk).
BTW ada apa dengan WHEN-NEW-RECORD-INSTANCE
? Masalah apa yang Anda alami saat menggunakannya?