我想测试一些功能,由于某些原因我需要在数据中插入或修改一些数据而且必须要提交,但我希望当我测试完以后能回到我测试之前的数据库。有些类似savepoint的功能,但savepoint提交后是不能回滚的。大家有没有什么解决办法呢?

解决方案 »

  1.   

    看flashback功能开起来没有,开起来的话直接闪回就好了
      

  2.   

    在PL/SQL Developer中测试,在你退出之前执行rollback即可。
      

  3.   

    如果开了闪回就可以,没开的话
    alter database flashback on;
      

  4.   

    对于一个事物来说,你提交后就没有所谓的回滚了,只能在提交前回滚。当然flashback另说。
      

  5.   

    可以使用Oracle 11g的闪回技术。
    具体操作步骤如下(所有操作均在SQL*Plus中进行):
    启用闪回功能
    1. 登录系统2.查询并设置快速恢复区参数。http://hi.csdn.net/attachment/201111/11/1175441_1320985264l50n.png
    3.确认数据库是否处于归档模式 如果不是将实例改为归档模式运行4.查看DB_FLASHBACK_RETENTION_TARGET的值,单位为分钟,,默认为1440,即一天。5.设置DB_FLASHBACK_RETENTION_TARGET为希望的值:(这里设置为4320,即3天)6.启动闪回数据库,并打开数据库。
    到此,已经启用了数据库闪回。可以进行练习了。练习结束后,执行闪回,就可以回复到这时的状态。
      

  6.   

    闪回数据库(就是练习完了,恢复数据库到练习之前的状态)
    1.查询最老闪回的备份,记下SCN编号。2.关闭数据库,并将数据库启动到MOUNT状态
    3.进行闪回4.用RESETLOGS选项打开数据库
    此时数据又恢复到练习之前的状态。爽吧,呵呵。