Oracle 21c for update文にWAITを指定してレコードのロック待機する方法

環境
Windows 11 Pro 21H2 64bit
Oracle Database 21c Express Edition Release 21.0.0.0.0

書式
FOR UPDATE
[ WAIT [ 待機時間 ]]
WAIT句
対象レコードにロックがかかっていた時に、ロックが開放されるまで待機します。
待機時間が指定してある場合は、ロックが開放されるまで最大で、指定した待機時間まで待機します。

使用例
表「user」と表「student」のSELECTレコードは全てロックします。
SELECT時にロックがかかっていた場合は、ロックが開放されるまで最大30秒待機します。
SQL構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
select
t1.ecd
, t2.dcd
, t1.name
from
user t1
, student t2
where
t1.dcd = t2.dcd for update wait 30;
select t1.ecd , t2.dcd , t1.name from user t1 , student t2 where t1.dcd = t2.dcd for update wait 30;
select
   t1.ecd
  , t2.dcd
  , t1.name 
from
    user t1
  , student t2 
where
  t1.dcd = t2.dcd for update wait 30;

 

Oracle 21c

Posted by arkgame