解决方案 »

  1.   

    select * from t
    minus
    select * from  t as of timestamp to_timestamp('2014-12-01 15:10:00','yyyy-mm-dd hh24:mi:ss');
    --t的表结构是:
    create table t(
    id number(11),
    name varchar2(30)
    );表t中原有数据四条,如果刚插入一条后,发现需要删除,那么就根据当时插入数据的大约时间“2014-12-01 15:10:00”
    就可以查询出来
      

  2.   

    也可以建表时增加ROWDEPENDENCIES关键字,然后通过伪列ora_rowscn获取插入行的先后顺序
      

  3.   

    说下闪回,闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别闪回、事务级别闪回,根据闪回对数据的影响程度又可以分为闪回恢复,闪回查询。闪回恢复将修改数据,闪回点之后的数据将全部丢失。而闪回查询则可以查询数据被DML的不同版本,也可以在此基础之上确定是否进行恢复等。
    步骤(前提归档日志可用)
            关闭数据库
            启动数据库到mount状态(exclusive模式)
            闪回至某个时间点,SCN或log sequence number
            使用resetlogs打开数据库
        1.使用sqlplus实现闪回
            可以接受一个时间标记或一个系统改变号实参
            sqlplus几种常用的闪回数据库方法
                FLASHBACK [STANDBY] DATABASE [<database_name>]  TO [BEFORE] SCN <system_change_number>   --基于SCN闪回
                FLASHBACK [STANDBY] DATABASE [<database_name>]  TO [BEFORE] TIMESTMP <system_timestamp_value>--基于时间戳闪回
                FLASHBACK [STANDBY] DATABASE [<database_name>]  TO [BEFORE] RESTORE POINT <restore_point_name>--基于时点闪回
      

  4.   

    Insert后面加returning rowid,希望对你有帮助