【问题标题】:Use of FLASHBACK in Oracle在 Oracle 中使用 FLASHBACK
【发布时间】:2014-09-20 15:07:18
【问题描述】:

我已经搜索了闪回命令。某处写着我们可以回滚截断操作,而某处写着我们不能回滚。 Oracle中的FLASHBACK命令可以用来回滚截表操作吗?

【问题讨论】:

  • 闪回与回滚不同,但不,它无法从截断中恢复,并且您无法在截断后执行闪回查询。它可以从drop table 中恢复,这可能会造成混乱。也许您可以引用和/或链接到这两个相互矛盾的陈述的来源?

标签: oracle database-administration flashback


【解决方案1】:

您需要启用 Flashback Data Archive。然后 truncate 可以用这样的语句反转:

insert into <truncated_table> 
   select * from <truncated_table> as of timestamp <some time>;

感谢@Jon Heller 添加有关新功能的有用信息:

这需要11.2 或更高版本,它引入了对DDL statements such as truncate. 的支持

【讨论】:

  • 你还是can't recover from a truncate,但是?或者更确切地说,如果启用,则无法截断;但无论哪种方式,您都不能“回滚”截断?
  • 我的意图是专注于相反的方式。我并不是说它会回滚截断的数据。但是它会让归档的历史数据可以用标准的SQL语句来访问
  • @Jon,感谢您的编辑。现在更有意义了。
  • 啊,我没有意识到 11gR2 允许截断(或 JonHeller 链接中的其他 DDL)。很有趣。
  • 并且只是补充一点,该功能在 Express Edition 中不可用。 oracle.com/us/products/database/enterprise-edition/comparisons/…
猜你喜欢
  • 2017-09-29
  • 2021-09-07
  • 2016-02-22
  • 2017-08-07
  • 2013-05-05
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多