最近,项目需要通过Oracle DBLink调用远程数据库的存储过程。
此存储过程中有插入更新数据操作。本地调用时报如下错误:
Caused by: java.sql.SQLException: ORA-02064: 不支持分布式操作。
可以采用下面2个办法解决。
1.在远程数据库的存储过程中不进行commit、rollback操作,也就是采用分布式事务管理的办法。
2.使用Oracle自治事务。oralce自治事务的声明方法PRAGMA AUTONOMOUS_TRANSACTION,对BEGIN......END块是有效的。