我需要清空2001到2009的数据,然后导入2009年的数据,应该怎么办?是SQL语句是什么?
或者如何清空ORACLE里面2001年到2008年的数据,只保留2009年的?多谢

解决方案 »

  1.   

    如果对于表而言delete from tbname where 年分 <> '2009'整个数据数据库就不知道怎么做了,不过,一个一个表这么做,肯定行.
      

  2.   

    delete from table1 where 日期<to_date('20090101','yyyymmdd');
      

  3.   

    全部清空:truncate table ***;然后再insert 2009的,应该比delete快,做完之后,请重新优化索引。
      

  4.   


    如果是数据量比较大的话,可以考虑这样的做法。如果不大,就常规的delete吧。
      

  5.   

    先把2009的数据保存在另一张表中 ,tab代表源表,temp 代表临时表
    [code=SQL]
    create table temp as select * from tab where 日期 >= to_date('20090101','yyyymmdd'); 
    commit;
    truncate table tab;
    commit;
    insert into tab as select * from temp;
    commit;
    drop table temp;
    commit;
    [/sql]