文档解释
ORA-24784: Transaction exists
Cause: An attempt was made to start a transaction, while attached to a non-migrateable transaction
Action: None
**ORA-24784错误消息:**
ORA-24784: 事务存在
官方解释
ORA-24784 异常指示当前会话以前曾经启动了一个事务但目前还未提交或回滚,所以当前会话上无法再次开启新的事务。
常见案例
建立新事务时可能会收到此错误,这最多发生在用户忘记将前一个事务正确提交或回滚,也有可能是由于代码中疏忽导致的。
一般处理方法及步骤
在解决 ORA-24784 异常时,第一步需要确认数据库中是否存在未提交或未回滚的事务,用以下语句可查询是否有未完成的事务:
“`SQL
SELECT * FROM dba_2pc_pending
“`
如果存在未完成的事务,可能需要以系统管理员身份登录 Oracle 数据库,使用以下 SQl 代码来强制提交或回滚活动的事务:
“`SQL
COMMIT FORCE ‘transactionid’; –提交;
ROLLBACK FORCE ‘transactionid’; –回滚;
“`
如果没有未完成的事务,可能是数据库内部的错误造成的问题,可以尝试重启服务,知道问题解决为止。