背景 我正在做一些Oracle plsql重构;我想要完成的第一个想法是对主要组件进行单元测试。
为此,我使用ruby和gem plsq-spec https://github.com/rsim/ruby-plsql-spec
为了多次执行测试,我在打开数据库连接后使用Oracle Savepoints,并在关闭连接之前回滚到保存点
问题: 有些测试不能执行多次,因为有些程序有内部提交。
如果发生内部提交/回滚,我可以在Oracle中做些什么来保留保存点?
在说明中显示这些信息显然我想要的是不可能的 http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/savepoint_statement.htm
简单的回滚或提交会删除所有保存点。当你回滚 保存点后,标记在该保存点之后的任何保存点都将被删除。 您回滚的保存点仍然存在。
所以,唯一的解决方案是?:
TKS
答案 0 :(得分:3)
闪回功能可以为您提供帮助,因为您可以将数据库或单个表恢复到之前某个时间点的状态。
http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9012.htm