在Oracle中还原截断的表数据

时间:2016-10-24 11:50:32

标签: oracle

我是Oracle Advance概念的新手,在我的应用程序中,我不小心"截断"数据。我面临困难 恢复截断的数据。我用Google搜索了很多,我发现有" FLASHBACK"来自oracle 10g的命令。我在闪回中使用时间戳方法尝试了它 但我收到以下错误:

错误:表格定义已更改。

是否有人可以告诉我如何取回截断的表数据?

有可能吗?如果是,请让我知道取回数据的程序。

1 个答案:

答案 0 :(得分:3)

错误信息非常清楚。如果您对表有DDL操作(添加或删除列,添加或删除约束等),则FLASHBACK不可用。它位于文档的第一段中。 http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9012.htm正如蒂姆建议的那样 - 这是备份数据会有所帮助的地方。

编辑:为了非常精确,Oracle文档中的措辞(我强调): Oracle数据库无法将表恢复到任何DDL操作的早期状态 更改表格的结构。因此,添加或删除列将阻止使用FLASHBACK,因为它们会更改表的结构。 TRUNCATE不会,因此TRUNCATE本身不会阻止FLASHBACK(尽管TRUNCATE 是DDL操作)。我在第一段中被带走"添加或删除约束" - 我实际上不知道这是否会阻止FLASHBACK;人们可以通过实验找到答案。