开发者

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

开发者 https://www.devze.com 2025-09-30 09:05 出处:网络 作者: 为什么不问问神奇的海螺呢丶
目录oracle database恢复被修改的视图据我推测、 LAST_DDL_TIME就是修改时间下面回溯时间划重点总结Oracle database恢复被修改的视图
目录
  • oracle database恢复被修改的视图
    • 据我推测、 LAST_DDL_TIME就是修改时间
    • 下面回溯时间
    • 划重点
  • 总结

    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
    ------------------------------ ------------------------------ ------------------------------ ---------- ----------javascript---- ------------------- ----------- ------------- ------------------- ------- --------- --------- --------- ---------- ------------------------------
    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_vzrhlSGoiews where vijavascriptew_name='CV_SR_PART'

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

    下面回溯时间

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

    select 编程客栈text from dba_views as of timestamp to_date('201806081100','yyyymmddhh24miss') where view_name=www.devze.com'CV_SR_PART';

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

    划重点

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

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号