带有select语句的Oracle锁表

时间:2018-03-27 14:30:45

标签: oracle locking

用oracle 11g表达,我在第一个实例中

LOCK TABLE mytab IN EXCLUSIVE MODE

然后,我打开第二个实例,然后运行

INSERT INTO mytable ...

它挂起,听起来很酷, 但是一个简单的“SELECT * from mytable ...”不会!?

为什么? 使用SELECT“挂到”的正确方法是什么?

**更新** 好的,我已经看过了 Exclusive table (read) lock on Oracle 10g?

所以,我的案子是“丢失”:)?

2 个答案:

答案 0 :(得分:3)

这是正常的......

在Oracle文档中,在EXCLUSIVE MODE上,您可以阅读

  

EXCLUSIVE允许对锁定表进行查询但禁止任何其他查询   它的活动。

答案 1 :(得分:0)

一旦你在一个单独的会话中放置了表锁,如果你想在select上被阻止,你可以做select ... for update,这将被阻止(它将等到锁被释放)你也可以做一个select ... for update nowait,如果它无法获得锁定,它会立即回来,而不是等待