首页 > 解决方案 > 在 Oracle 12c 中实现读锁的任何方法?

问题描述

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

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

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

标签: javajdbcoracle12c

解决方案


查看select for update of的文档。这会在您选择时锁定该行。当然,您需要立即进行更新。


推荐阅读