【发布时间】:2015-01-15 02:46:14
【问题描述】:
昨天我在生产环境中对我的 Oracle 表进行了数据更正。但后来我发现我的选择命令获取了 62 行,显然在相同的条件下 64 行得到了更新。由于我没有在该更新中受到影响的行列表,因此我无法比较所选行的列表以及稍后更新的行列表。那么有没有办法找到在该表上的特定时间更新的行列表,比如从 16:20 到 16:21? Oracle 是否会跟踪给定表的哪些行更新的时间?
【问题讨论】:
-
我知道在几乎所有表上创建了大量触发器的软件,以分别跟踪每条记录的更新。他们只是在这些表中添加一个 DATE 格式的列,然后将相同的代码添加到选定表的 UPDATE 触发器中。我不确定如何从默认数据库设置中了解类似的数据。我也很想知道,但鉴于我所说的第一件事,我怀疑它是否很容易检索。
-
另外,我会检查 SELECT 和 UPDATE 语句。显然,WHERE 子句有所不同。知道您应该能够非常轻松地从任何 UPDATE 语句创建 SELECT 语句,只需将 UPDATE 和 SET 子句更改为 SELECT 和 FROM 子句。