java - Oracle ORA-02089 与 Java

标签 java plsql oracle11g

尝试从 Java 调用 PL/SQL 存储过程时出现以下错误:ORA-02089: COMMIT is not allowed in a subordinate session

它在 Oracle 中测试良好。有人对这个有经验么?

最佳答案

试试这个方法;

  • 更改数据源以使用 Non-XA(并勾选“Supports Global 事务”和“模拟两阶段提交”按钮)
  • 从您的代码中删除 COMMIT。
  • 使用“PRAGMA AUTONOMOUS_TRANSACTION”。这将创建一个 允许使用 commit.For 的单独事务 示例:CREATE PROCEDURE XXX AS PRAGMA AUTONOMOUS_TRANSACTION;开始 ……

关于java - Oracle ORA-02089 与 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936220/

相关文章:

java - 如何更新 GridLayout 中的 JTextField?

sql - 针对特定情况有好的解决方案吗?我的选择查询看起来很愚蠢。 :))

java - Spring在JDBCTemplate中对异常处理的实现

plsql - 具有 into 关键字的动态 SQL Select 语句

c# - log4net AdoNetAppender 在 Application_Start() 中不工作

java - 如何使用@JoinColumn 和@MapsId 在@OneToOne 关系中设置外键名称

java - 如何在 spring data-rest 中使用 PATCH 请求更新引用的对象

Java 堆空间::内存不足错误

sql - 从 pl/sql 异常 block 关闭所有游标 'once'

sql - 在 Oracle 中使用 to_date 的查询在 Windows 和 Ubuntu IDE 中运行不同