昨天,我在生产环境中的Oracle表中进行了数据更正。 但是后来我发现我的选择命令取了62行,显然在相同条件下更新了64行。 由于我没有该更新中受影响的行列表,因此我无法比较所选的行列表和后来更新的行列表。 那么,有什么方法可以找到在那个特定时间在该表上更新的行列表,例如从16:20到16:21? Oracle是否跟踪在什么时间更新给定表的哪些行?

#1楼 票数:1

如果在数据库上启用了闪回功能,则可以在特定时间检查数据库中的数据。

SELECT * FROM table
AS OF TIMESTAMP 
TO_TIMESTAMP('2015-01-14 13:33:00', 'YYYY-MM-DD HH:MI:SS')
WHERE column = 'your value';

使用此功能,您可以在之前和之后检查数据以查找怀疑的记录。 如果找不到记录,则可以使用

SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) FROM table where <<your condition>>

但是,仅对于最近更新的几条记录,才可以获得SCN_TO_TIMESTAMP(ORA_ROWSCN)。 您只能与系统维护的“重做/闪回”窗口中的SCN进行相互转换。 一旦更改过期,则映射将丢失。

#2楼 票数:0

尝试使用oracle FLASHBACK功能(以防您的数据库根据闪回实用程序配置)

如果启用,它将显示过去任何给定时间点的表数据。

有关此的更多详细信息,请遵循http://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_flashback.htm#ADFNS01001

  ask by Mistu4u translate from so

未解决问题?本站智能推荐:

3回复

如何查找PL SQL包中受影响的表?

我必须找出现有的PL SQL包中要插入或更新到其中的表的列表。 我开始分析该软件包。 令人担忧的是,程序包代码在数千行代码中运行,并依次调用许多其他程序包。 另外,代码不是我写的。 由于它是开发环境,因此无法运行AWR报告。 启动事务后,是否有办法将插入/更新的表插入其中? 是否
2回复

最后受影响的行

我有一张表,其中有1列,并且有超过10万条记录(行)。 超过1000个用户使用该表,并且他们更新,插入,删除该表。 是否可以在Oracle中标识以找到最后受影响的行?
1回复

如果我的PLSQL块中存在多个DML查询,如何计算受影响的聚合行?

我有一个场景,在我的PLSQL块中可能存在多个DML语句,我一直在寻找一种通用方法,通过该方法,我可以计算出受此代码块影响的行总数。 测试数据和结构供参考: 可能存在多个这样的表, 以下是PLSQL块,具有不记录受影响行的功能: 结果: 在“ proc”过程中
2回复

在 SQL 中更新后如何查找受影响的行

我有一个表和一个存储过程。 我使用存储过程来更新表。 存储过程中有一些游标,SP 正在更新表。 我想通过存储过程更新行。 我不想更新行数,我只想更新行。 我创建了一个临时表来插入更新的行,但无法获取更新的行。 我怎样才能得到? 我正在使用 SQL Server。
2回复

在Oracle中,如何为表以及受影响的列选择唯一的索引

如果执行此查询: 我将获得表MY_TABLE的所有索引。 其中之一是影响三列的唯一索引,我可以在SQL Developer中进行检查。 但是,从查询结果中,我无法确定哪个索引会影响哪些列以及受影响的列数。 我应该如何更改查询以仅获取影响多于一列的唯一索引以及该列的列表?
2回复

ORACLE SQL:查找列中的最后一行,然后从另一个数据更新数据而不影响旧数据

我目前正在学习在 Oracle SQL 中编写代码。 参考我所附照片上的示例,我希望我的脚本在表 A 中查找最后日期,如果日期(表 A)小于表 B 中的日期,则仅将表 B 中的最新日期数据插入到 A不影响表 A 中的旧日期数据。 . 原因是因为表 B 的数据是按月存储的,这意味着去二月时会清除
1回复

如何从 oracle 中的数据库触发器获取已执行的操作和受影响的表?

如何从 oracle 中的数据库触发器获取已执行的操作和受影响的表? 我想为 Oracle 中的模式创建一个触发器,该触发器on drop or alter or create on database时执行所以我需要类似的东西,例如插入、更新、删除但对于 DDL 语句,并且不知何故我需要知道受影响
2回复

安全检查:如何限制Oracle Update / Delete查询中受影响的行数?

我的应用程序中有一个类似于ORM的微型组件,用于处理基本更新/删除操作的查询生成,但是由于主键是自动确定的,因此我需要在查询级别上建立一些安全性(如果需要的话,是第二级的肛门) )。 通过设计,每当我更新或删除一行时,它都只会影响1行。 因此,给出以下查询: UPDATE Car