我有一个需要回滚数据库更改的情况,而且我想保留插入的日志。
插图:
Add processing log Insert some data Insert some data Insert some data Add processing log Do some checking... Checking Failed Add processing log Rollback;
- 其他插入数据的同一数据库上的日志表
有没有办法做到这一点?
有,我通常希望有一个集中的日志记录例程,并且在那个日志记录包中,在你用来编写日志的函数中,在过程头声明之后插入这一行
PRAGMA AUTONOMOUS_TRANSACTION;
这会将日志插入放置在与调用例程不同的事务上,从而允许您提交日志,而不管父例程中发生什么。
文档详细信息: http: //docs.oracle.com/cd/B28359_01/appdev.111/b28370/autotransaction_pragma.htm