Jika Anda hanya ingin mencegah sesi lain mengubah data, Anda dapat mengeluarkan
LOCK TABLE whatever
/
Ini memblokir sesi lain dari memperbarui data tetapi kami tidak dapat memblokir orang lain untuk membacanya.
Perhatikan bahwa di Oracle penguncian tabel seperti itu jarang diperlukan, karena Oracle mengoperasikan kebijakan konsistensi baca. Artinya jika kita menjalankan query yang membutuhkan waktu lima belas menit untuk menjalankan baris terakhir yang dikembalikan akan konsisten dengan baris pertama; dengan kata lain, jika kumpulan hasil telah diurutkan dalam urutan terbalik, kita masih akan melihat baris yang sama persis.
edit
Jika Anda ingin menerapkan antrian (tanpa benar-benar menggunakan Oracle fungsi Antrian Lanjutan bawaan
) lalu SELECT ... FOR UPDATE
adalah cara untuk pergi. Konstruksi ini memungkinkan satu sesi untuk memilih dan mengunci satu atau lebih baris. Sesi lain dapat memperbarui baris yang tidak terkunci. Namun, menerapkan antrian asli cukup rumit, kecuali jika Anda menggunakan 11g. Hanya dalam versi terbaru Oracle telah mendukung SKIP LOCKED
ayat. Cari tahu lebih lanjut
.