ora-02064不支持分布式操作与Oracle自治事务

来源:互联网 发布:知金教育好吗 编辑:程序博客网 时间:2024/05/16 16:20

最近做一个小需求:Oracle DBLink到另一个数据库,调用了对方的存储过程,并且存储过程中有更新(DDL)数据的操作。本地调用时报错:ora-02064不支持分布式;解决办法,1.在被调的存储过程中,不要commit,rollback数据库事务操作。2.用Oracle自治事务来解决。oralce自治事务的声明方法为: PRAGMA AUTONOMOUS_TRANSACTION;对BEGIN。。END块有效,如:

CREATE OR REPLACE PROCEDURE proName

   Log_error(error_msg IN VARCHAR2(100))

IS

   PRAGMA AUTONOMOUS_TRANSACTION;

BEGIN

   Insert into Error_log values ( sysdate,error_msg);

   COMMIT;

END;

0 0
原创粉丝点击