「Oracle入門」SELECT FOR UPDATEでレコード行をロックするサンプル
1. SKIP LOCKED でロック中の行を無視する
SELECT dbms_random.random() as rand , USER_NAME FROM USER_TBL WHERE SCORE > '80' AND ROWNUM <= 100 ORDER BY rand FOR UPDATE SKIP LOCKED
2.更新対象のレコードをロックする
SELECT * FROM USER_TBL FOR UPDATE