【发布时间】:2011-03-03 14:54:33
【问题描述】:
使用 Oracle,是否可以在执行 select 语句时指出哪些行当前被锁定(哪些未被锁定)(我不想锁定任何行,只能够显示哪些行被锁定)?
例如,一个伪列将针对该行返回锁定/事务:
SELECT 锁名 FROM emp;
【问题讨论】:
-
为什么要显示哪些行被锁定?如果目的是防止某人尝试锁定其他人已经在处理的行,则使用 SKIP LOCKED 选择未锁定的行可能更容易(取决于 Oracle 版本,这可能会或可能不会可用/记录)。
-
@OMG Ponies:没有阻塞,因此将值放入 dbms_rowid.rowid_create 从 v$session 会创建一个表中不存在的 rowid(至少这就是我猜测的原因它没有用)。 @贾斯汀洞穴:是的,这是我的意图。 SKIP LOCKED 听起来可能可行。