テーブル内の 1 つのレコードをロックしたい。レコードは「次より大きい ID を持つもの」として指定されます。
CREATE TABLE test (id number);
SELECT id
FROM (SELECT id
FROM test
WHERE id > 10
ORDER BY id)
WHERE ROWNUM = 1
FOR UPDATE;
これは直感的で簡単に思えます。そうではありません。何か案は?
PS
既存のクエリはカーソルであり、このカーソルの %rowtype を使用する場所がいくつかあるため、同じままにしておく必要があります。