oracle中特定表的历史记录

时间:2013-12-25 08:35:47

标签: sql oracle oracle-sqldeveloper

我们能找到特定表的值,更新,删除或插入的历史记录吗?

我无权创建stored procedure。您能否在答案或其他方式中向我提供查询以查找历史记录?

3 个答案:

答案 0 :(得分:6)

有两种可能性浮现在脑海中。

1。)如果您启用了审核,那么您已经完成了设置。但是,我猜是否是这种情况,你不会问这个问题。如果您认为此请求将再次出现,则应调查是否为将来的请求设置审核。

2.。)如果未设置审核,则使用LogMiner,它允许您检查存档和联机重做日志的内容。如果您需要插入,更新,删除特定表的详细信息,这可能是您唯一的解决方案。

希望有所帮助。

答案 1 :(得分:2)

如果已通过架构或表启用FLASHBACK,则可能。大多数关键表都可以启用。请与DBA联系。如果您拥有DBA访问权限,请在SQL Developer中选择表格名称,按Shift+F4并移至闪回标签以查找详细信息。

如果启用,您可以使用以下查询(只是一个示例)

SELECT * FROM employee AS OF TIMESTAMP 
   TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
   WHERE name = 'JOHN';

如果未启用,您可能必须在该表上为TRIGGERS编写DML。我同意TRIGGERS之前的数据历史记录永远消失,除非DBA能够使用重做日志做一些魔术......!

答案 2 :(得分:0)