在oracle 数据库 11g中,该表FLASHBACK_TRANSACTION_QUERY提供了UNDO_SQLSQL 反转由先前执行的特定查询所做的修改的列。
但是,我需要(已执行REDO_SQL的原件)代替。SQL有没有办法(使用 SQL)从oracle 闪回REDO_SQL区域中提取信息?
正如您在文档中看到的,Oracle 闪回功能专注于数据而不是 SQL 语句。因此,您无法从闪回数据中发现语句。
相反,您可以在数据库设置中启用AUDIT功能( AUDIT_TRAIL参数),然后使用此处AUDIT所述的语句管理审核设置。
可以使用DBA_AUDIT_TRAIL或USER_AUDIT_TRAIL视图访问记录的语句。
达到相同目标的另一种方法是使用DBMS_FGA包来调整审计策略,然后参考DBA_FGA_AUDIT_TRAIL或V$XML_AUDIT_TRAIL获取已执行语句的列表。此选项涉及细粒度审计功能,仅适用于企业版 Oracle 数据库。
更新
抱歉最初的错误,审查审计记录的视图的真实名称是DBA_AUDIT_TRAIL(上面更正)。
该视图可以TRANSACTIONID与视场在字段XID上进行连接,FLASHBACK_TRANSACTION_QUERY以获得相应的闪回记录。
除了 Oracle 文档之外,Oracle-Base 站点上还有许多关于审计的好文章。