我已经写了一个简单的Java程序,它打开一个事务,选择一些记录,执行一些逻辑然后更新它们。我希望这些记录被锁定,因此使用了SELECT...FOR UPDATE。
这个程序在MS SQL Server 2005上运行得非常好,但是在Oracle 10g中,记录没有被锁定!
有任何想法为什么会这样吗?
我按照以下方式创建连接:
如果我从Oracle SQL Developer客户端执行SELECT..FOR UPDATE,我可以看到记录被锁定,因此我认为这可能是JDBC驱动程序的问题,而不是数据库问题,但我在网上找不到任何有用的信息。
这是我使用的JDBC驱动程序的详细信息:
这个程序在MS SQL Server 2005上运行得非常好,但是在Oracle 10g中,记录没有被锁定!
有任何想法为什么会这样吗?
我按照以下方式创建连接:
Connection connection = DriverManager.getConnection(URL, User, Password);
connection.setAutoCommit(false);
如果我从Oracle SQL Developer客户端执行SELECT..FOR UPDATE,我可以看到记录被锁定,因此我认为这可能是JDBC驱动程序的问题,而不是数据库问题,但我在网上找不到任何有用的信息。
这是我使用的JDBC驱动程序的详细信息:
Manifest-Version: 1.0
Implementation-Vendor: Oracle Corporation
Implementation-Title: ojdbc14.jar
Implementation-Version: Oracle JDBC Driver version - "10.2.0.2.0"
Implementation-Time: Tue Jan 24 08:55:21 2006
Specification-Vendor: Oracle Corporation
Sealed: true
Created-By: 1.4.2_08 (Sun Microsystems Inc.)
Specification-Title: Oracle JDBC driver classes for use with JDK14
Specification-Version: Oracle JDBC Driver version - "10.2.0.2.0"