oracle db lock问题,提交

时间:2010-02-03 02:10:02

标签: oracle oracle10g locking

这是oracle 10g。如果我从sqlplus发出一个表的更新但是没有提交,那么在另一个会话中更新同一行并尝试提交,它只会挂起,直到我提交第一个。我知道有些人认为这是锁定机制,但我们的应用程序做了同样的事情,用户被阻止。

避免这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:5)

您可以使用NOWAIT选项发出锁,而不仅仅是尝试更新,例如

SELECT * FROM mytable
WHERE xxx
FOR UPDATE NOWAIT;

如果该行被其他用户锁定,Oracle将立即引发ORA-00054: resource busy and acquire with NOWAIT specified