oracle 上的 select SQL 语句是否会锁定所使用的表以供其他连接更新?

use*_*427 2 java jta jdbc oracle11g

oracle 上的 select SQL 语句是否会锁定所使用的表以供其他连接更新?这取决于我是否在 jta 事务中进行选择?如何控制这个问题并防止只读 SQL 语句锁定表进行编辑?

Jus*_*Now 6

我知道这是一个老问题,但我认为它值得一个更好的答案。如果您参考DML 操作中的自动锁,您会发现唯一会锁定表的SELECT语句是带有FOR UPDATE子句的语句,并且因为“不带FOR UPDATE子句的查询不会获取任何数据锁来阻止其他操作,例如查询通常称为“非阻塞查询”。