coba:
select .....
from <choose your table>
where id in (<your join query here>) for UPDATE;
EDIT :itu mungkin tampak sedikit kontra-intuitif mengingat pertanyaan yang Anda tautkan (yang menanyakan cara membuang IN
), tetapi masih dapat memberikan manfaat jika bergabung Anda mengembalikan satu set terbatas. Namun, tidak ada solusi:pengecualian Oracle cukup jelas; Oracle tidak tahu baris mana yang harus dikunci karena DISTINCT
. Anda dapat mengabaikan DISTINCT
atau tentukan semuanya dalam tampilan dan kemudian perbarui itu, jika Anda mau, tanpa kunci eksplisit: http://www.dba-Oracle.com/t_ora_02014_cannot_select_for_update.htm