在SQL Server中,我在查询中使用了以下提示:


行锁(行级别锁定)
上锁(防止脏读)
readpast(不要阻止等待行锁,请转到第一个未锁定的行)


例如

select top 1 data from tablez with (rowlock,updlock,readpast);


Oracle是否有等效的查询中提示?

最佳答案

ROWLOCK的等价物是FOR UPDATE子句

select *
from emp
for update;


由于11g,Oracle已记录了SKIP LOCKED语法,该语法与READPAST等效:

select *
from emp
for update skip locked;


这种语法已经使用了很长时间了(它是高级排队的基础),但是如果文档中没有它,则不支持,

没有等效的UPDLOCK锁,因为Oracle禁止进行脏读。了解更多。

10-06 13:08