zoukankan      html  css  js  c++  java
  • 误用DELETE删除了ORACLE表的数据怎么办

    第一种情况:使用delete删除数据

    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删除表

    1.使用正常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

  • 相关阅读:
    今天晚上有个什么样的博文呢
    STM8CubeMx来了
    开博啦
    Authentication
    文件上传设计要点
    分布式杂记
    SQL Server 知识集
    C# 集合使用误区
    网络知识集
    关于 elasticsearch 近实时特征的思考
  • 原文地址:https://www.cnblogs.com/dj-blog/p/10935513.html
Copyright © 2011-2022 走看看