有什么方法可以在Oracle 12c中实现读取锁定?

时间:2018-09-17 13:35:55

标签: java jdbc oracle12c

我正在访问Oracle 12C中的一个表,以从该表生成唯一的参考号,并将下一个号更新为同一行。同时,有3个以上的应用程序正在访问同一表中的参考号。当我使用查询访问连接时,有什么方法可以锁定表的读取。我已经尝试了以下查询。

LOCK TABLE UPS_HDR_SEQ IN SHARE ROW EXCLUSIVE MODE;
select max(SEQN) From UPS_HDR_SEQ where SRV_ID=?;

但是它仅允许用户在提交事务期间锁定连接。在此期间,任何其他可以读取数据的应用程序都将获得参考号。在这种情况下,其他应用程序也可以获得与我的参考号相同的参考号。 是否可以使用查询实现表的读取锁定?

1 个答案:

答案 0 :(得分:0)

请参阅select for update of的文档。选择时将锁定该行。当然,您需要立即进行更新。