Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle相当于ROWLOCK、UPDLOCK、READPAST查询提示_Sql_Oracle_Locking - Fatal编程技术网

Sql Oracle相当于ROWLOCK、UPDLOCK、READPAST查询提示

Sql Oracle相当于ROWLOCK、UPDLOCK、READPAST查询提示,sql,oracle,locking,Sql,Oracle,Locking,在SQL Server中,我在查询中使用了以下提示: 行锁定(行级锁定) updlock(防止脏读) readpass(不要阻止等待行锁定,转到第一个未锁定的行) e、 g Oracle的查询提示中是否有等效项?行锁的等效项是更新的子句 select * from emp for update; 自11g以来,Oracle记录了跳过锁定语法,该语法相当于读取过去: select * from emp for update skip locked; 这种语法已经使用了很长时间(它是高级排队

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

  • 行锁定(行级锁定)
  • updlock(防止脏读)
  • readpass(不要阻止等待行锁定,转到第一个未锁定的行)
e、 g


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

行锁的等效项是更新的
子句

select *
from emp
for update;
自11g以来,Oracle记录了
跳过锁定
语法,该语法相当于
读取过去

select *
from emp
for update skip locked;
这种语法已经使用了很长时间(它是高级排队的基础),但如果文档中不支持它


没有与
UPDLOCK
lock等效的方法,因为Oracle不允许脏读。了解更多

多谢各位。你确定你最后的陈述吗?似乎FOR UPDATE是UPDLOCK的替代品,而ROWLOCK更关注所使用的锁的粒度。锁类型之间没有简单的一对一关系。Oracle中的DML由行级锁驱动。Oracle中没有共享读锁的概念,因为它使用不同的一致性机制。数据记录本身具有独占的插入/更新/删除锁。Oracle仅使用表级锁来防止并发DDL。
select *
from emp
for update skip locked;