कोशिश करें:
select .....
from <choose your table>
where id in (<your join query here>) for UPDATE;
संपादित करें :यह आपके द्वारा लिंक किए गए प्रश्न को ध्यान में रखते हुए थोड़ा प्रति-सहज ज्ञान युक्त लग सकता है (जिसमें पूछा गया था कि IN
से कैसे छुटकारा पाया जाए) ), लेकिन फिर भी लाभ प्रदान कर सकता है यदि आपका शामिल होना प्रतिबंधित सेट लौटाता है। हालांकि, कोई समाधान नहीं है:ऑरैकल अपवाद काफी आत्म-व्याख्यात्मक है; oracle को पता नहीं है कि DISTINCT
. के कारण किन पंक्तियों को लॉक करना है . आप DISTINCT
. को छोड़ सकते हैं या सब कुछ एक दृश्य में परिभाषित करें और फिर उसे अपडेट करें, यदि आप चाहते हैं, तो स्पष्ट लॉक के बिना: http://www.dba-oracle.com/t_ora_02014_cannot_select_for_update.htm