如T
在网上看了,有人的说能,有的说法不能,说没记录日志

解决方案 »

  1.   

    不能,truncate table 是ddl数据定语言,而不是dml语言
    dml是:insert,update,delete
      

  2.   

    少一个字了
    truncate table 是ddl数据定义语言
      

  3.   

    truncate 后的语句是不记录日志的
      

  4.   

    使用flashback闪回删除掉数据的表SQL>SELECT current_scn from v$database;
    // 查看数据库SCN
    SQL>ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
    //更改时间格式
    SQL>select * from table1 as of scn XXXX;
    SQL>select * from table1 as of timestamp '2009/02/09 16:30:00';
      

  5.   

    可以恢复的,用闪回恢复数据。闪回恢复  SQL>select current_scn from v$database; //查看数据scn
      SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
      SQL>select sysdate from dual;
      SQL>select * from table1 as of scn xxxx;
      SQL>select * from table1 as of timestamp '2009-02-08 14:12:23'
      

  6.   


    可以的,我试过了啊,linux下oracle10G或者oracle 11G的都可以的。
      

  7.   

    可以恢复,如果你是再归档模式下
    可以flashback恢复或rman恢复
      

  8.   

    9i以下的版本需要有归档日志才行
    10g以上有回闪功能,使用flashback命令可恢复
      

  9.   

    再归档模式下
    可以flashback恢复或rman恢复
    例如:
      SQL>select current_scn from v$database; //查看数据scn
      SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
      SQL>select sysdate from dual;
      SQL>select * from table1 as of scn xxxx;
      SQL>select * from table1 as of timestamp '2009-02-08 14:12:23'
    如果是非归档那就恢复不了了。
      

  10.   

    上网查了下,9i的版本:你truncate table 的时候,如果是归档模式的话,就可以恢复,否则恢复不了!
      

  11.   

    用闪回和归档日志可以恢复。闪回和归档日志就是对数据库进行的备份处理,truncate table后只是对当前数据库的表操作,而不影响闪回文件和归档日志,当然可以恢复了。不要说truncate table,数据库没了应该都可以恢复,只要找到一个全库备份和之后的增量备份即可。
      

  12.   

    你做实验了吗?我做实验是不能,用闪回可以闪回drop,但是truncate 我这边没成功。不记录日志,不使用undo,用不了闪回。