如何在Oracle PL/SQL Developer中检索已修改视图的旧版本?
在Oracle PL/SQL Developer中检索普通视图的旧版本方法
借助Oracle回收站
要是视图是先被DROP再重建的,能查回收站里的旧对象。执行这段SQL:SELECT object_name, original_name, type, droptime FROM user_recyclebin WHERE original_name = '你的视图名' AND type = 'VIEW';找到目标旧视图后,要么用
FLASHBACK TABLE 原视图名 TO BEFORE DROP恢复,要么直接查它的定义:SELECT text FROM user_views WHERE view_name = '回收站里的对象名';通过数据库审计或闪回归档查询历史
如果数据库开了审计功能,能从审计日志里追视图的修改记录:SELECT timestamp, sql_text FROM dba_audit_trail WHERE obj_name = '你的视图名' AND action_name IN ('ALTER VIEW', 'CREATE VIEW');另外,要是数据库启用了闪回数据归档,还能查指定时间点的视图定义:
SELECT text FROM user_views AS OF TIMESTAMP TO_TIMESTAMP('具体修改时间', 'YYYY-MM-DD HH24:MI:SS') WHERE view_name = '你的视图名';注意:闪回数据归档需要提前配置,默认是不开启的。
查看PL/SQL Developer自带的操作历史
要是你是在这个工具里直接改的视图,工具本身可能存了操作记录:- 点菜单栏的
Tools->SQL History,在弹出窗口里搜和该视图相关的CREATE/ALTER语句。 - 之前保存过修改视图的SQL脚本的话,也能在
File->Recent Files里找。
- 点菜单栏的
内容的提问来源于stack exchange,提问作者Matěj Alex
相关产品推荐
相关产品推荐

