java.sql.SQLException:无法在 oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443) 上设置自动提交进行提交

新手上路,请多包涵

我刚从 classes12.jar 升级到新的 jdbc 驱动程序到 ojdbc7.jar

我的应用程序在使用 ojdbc7.jar 运行时抛出异常:

 java.sql.SQLException: Could not commit with auto-commit set on
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443)
    at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4490)
    at oracle.jdbc.driver.T4CConnection.doSetAutoCommit(T4CConnection.java:943)
    at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnection.java:4

我的应用程序仍然可以使用 classes12.jar 正常运行。

我研究了甲骨文:

对于以下任何一种情况,都会引发此异常:

  • 当自动提交状态设置为 true 并调用提交或回滚方法时
  • 当auto-commit的默认状态不变,调用commit或rollback方法时
  • 当 COMMIT_ON_ACCEPT_CHANGES 属性的值为 true 并且在对行集调用 acceptChanges 方法后调用提交或回滚方法时

但我在我的来源中找不到错误。请帮助我对此错误进行更多解释。

原文由 scarework 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

最新的 OJDBC 驱动程序比它们所在的地方更兼容。您可以为遗留代码关闭此行为:

 -Doracle.jdbc.autoCommitSpecCompliant=false

这是一个 JVM 选项。

原文由 Olafur Tryggvason 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题