背景: 我正在做一些 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