暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle误删数据的解决办法

Oracle那些事 2021-02-06
1908

第一种情况:使用delete删除数据(使用truncate不可以)

1. 用以下语句找出确定时间点删除的数据:

    select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss')

    或者用以下语句找出当前时间之前几分钟的数据:

      select * from 表名 as of timestamp (systimestamp - interval '2' minute);

      2. 然后就可以使用insert语句插入删除的数据


      第二种情况:使用drop删除表

      使用正常drop命令删除的表(没有使用purge)。

      使用drop删除的表并没有完全删除,它的块依旧保留在其表空间中,可以通过查询user_recyclebin/dba_recyclebin数据字典视图来查看删除的对象。默认情况下,回收站是启用的,初始化参数recyclebin=on。

      例如删除了一张emp表,可以通过以下语句闪回表

        flashback table emp to before drop;
        flashback table emp to before drop rename to emp2;--重命名

        也可以通过删除recyclebin区域来永久性删除表 ,原始删除表drop table emp cascade constraints
        purge table emp;
        删除当前用户的回收站:
        purge recyclebin;
        删除全体用户在回收站的数据:
        purge dba_recyclebin;



        文章转载自Oracle那些事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论