Oracle自治事务的介绍
2010-09-19 20:04
489 查看
在你的一个事务(外层事务)中可以定义一个或几个自治事务。自治事务可以独立commit,不对外层事务产生影响,同样外层事务的 rollback 也对自治事务没有影响。通常可以考虑将自治事务定义成一个过程,在外层的事务中调用。
现在举个例子吧:以下procedure被一个无名块调用,
PROCEDURE write_log (
code IN INTEGER, text IN VARCHAR2)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO log VALUES (
code, text,
USER, SYSDATE
);
COMMIT;
END;
因为这个procedure的作用是写log,无论操作成功与否(即无名块是否执行rollback),log当然是都应该记录的啦。所以要把它写成自治事务,让这个procedure的提交独立于调用它的无名块,在rollback时也不会影响到log的记录。
现在举个例子吧:以下procedure被一个无名块调用,
PROCEDURE write_log (
code IN INTEGER, text IN VARCHAR2)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO log VALUES (
code, text,
USER, SYSDATE
);
COMMIT;
END;
因为这个procedure的作用是写log,无论操作成功与否(即无名块是否执行rollback),log当然是都应该记录的啦。所以要把它写成自治事务,让这个procedure的提交独立于调用它的无名块,在rollback时也不会影响到log的记录。
相关文章推荐
- Oracle自治事务介绍
- 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
- 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
- Oracle自治事务的介绍
- Oracle自治事务的介绍(Autonomous Transactions)PRAGMA AUTONOMOUS_TRANSACTION
- (转)关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
- Oracle自治事务的介绍(Autonomous Transactions)
- Oracle自治事务的介绍(Autonomous Transactions)PRAGMA AUTONOMOUS_TRANSACTION;
- Oracle自治事务的介绍(Autonomous Transactions)PRAGMA AUTONOMOUS_TRANSACTION;
- 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
- 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
- 关于Oracle AUTONOMOUS TRANSACTION(自治事务)的介绍
- ora-02064不支持分布式操作与Oracle自治事务
- AUTONOMOUS TRANSACTION(自治事务)的介绍
- Oracle自治事务
- oracle 自治事务
- AUTONOMOUS TRANSACTION(自治事务)的介绍
- Oracle-自治事务
- Oracle 嵌套事务与自治事务思考
- Oracle自治事务实例讲解