最近遇到一问题,在oracle存储过程中使用DBLINK时,会报这个错:
ORA-02046:分布式事务处理已经开始
ORA-02063:preceding line from SZDW
SZDW为DBLINK名称。
用完DBLINK后已关闭SESSION
ALTER SESSION COLSE DATABASE LINK SZDW;
而且在用DBLINK前已经预先进行了一步异常处理用来关闭SESSION。
但是偶尔还是会报上面的错误,而且有时会报,有时不会报。
请高手指点,如何解决上述问题。
------解决方案--------------------
不要在远程调用的存储过程或者包中使用事务控制语句。因为远程调用的包执行时没有机制执行2-phase commit.