当前位置: 代码网 > it编程>数据库>Oracle > Oracle database恢复被修改的视图实现方式

Oracle database恢复被修改的视图实现方式

2025年09月30日 Oracle 我要评论
oracle database恢复被修改的视图早上同事来找、 一个视图被修改了、 能不能查出来修改的时间、研究了下系统中各个数据字典、找到一个表可以看到、select * from all_objec

oracle database恢复被修改的视图

早上同事来找、 一个视图被修改了、 能不能查出来修改的时间、

研究了下系统中各个数据字典、找到一个表可以看到、

select * from all_objects  where object_name='cv_sr_part';
owner                          object_name                    subobject_name                  object_id data_object_id object_type         created     last_ddl_time timestamp           status  temporary generated secondary  namespace edition_name
------------------------------ ------------------------------ ------------------------------ ---------- -------------- ------------------- ----------- ------------- ------------------- ------- --------- --------- --------- ---------- ------------------------------
siebel                         cv_sr_part                                                        287957                view                2016/7/7 2: 2018/6/8 11:5 2018-06-08:11:52:16 valid   n         n         n                  1 

据我推测、 last_ddl_time就是修改时间

那么问题来了、 怎么恢复呢?

通过数据库备份、 做不完全恢复?

太麻烦了、 生产数据库也不合理、

视图的本质存放的是一条sql、 那么,

select * from dba_views where view_name='cv_sr_part'

dba_views 这个视图中text字段存放了视图本质、

下面回溯时间

看下被视图被修改的时间前text字段存放了什么、

select text from dba_views as of timestamp to_date('201806081100','yyyymmddhh24miss') where view_name='cv_sr_part';

查到之前的视图内容、 重新执行下就可以了、

划重点

生产系统上创建视图的时候不要create or replace

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com