truncate table tablename  ?一个个来?

解决方案 »

  1.   

    你把一个用户删除了不就好了吗??DROP USER 用户名 CASCALE
    如果你想删除表空间的话也可以的啊,直接DROP TABLESPACE 表空间名
    再建一个表空间,不是难事吧····
      

  2.   

    写一存储过程
    先统计所有表的数量,列出所有表名。
    然后根据数量、表名循环 truncate 每一个表
      

  3.   

    楼上的兄弟
    我也是这样想的
    现在我正在用delphi写一个清理数据的程序
    估计马上就可以用了
    不过还想问一下,删除数据是用truncate table 还是用delete 比较快啊???
      

  4.   

    drop 用户,再重建表不快吗?
      

  5.   

    先建结构相同的空表,然后把有数据的表truncate、drop就OK了啦
      

  6.   

    编个小程序
    首先使用一个查询
      select table_name from all_tables where tablespace_name=upper('表空间名字')
    得到一个数据集,包括所有你的表啦
     然后使用一个循环,挨个
    begin
      create table 新表_bck select * from 旧表名 where 主键 is null
      truncate table 旧表名
      drop table 旧表名
      数据集指针后移
    end
      

  7.   

    还有一个更快更好的方法
    利用exp导出按照用户名导出文件(你的用户名肯定不会太多的)
    导出的时候不导出数据,导出后把原有用户下表都清空
    再导入,难道不好吗?
      

  8.   

    set pages 9999
    select 'truncate table '||table_name||';'
      from all_tables
     where tablespace_name='MYTABLESPACE';
    把返回的结果copy/paste到sql plus中运行就可以了。
      

  9.   

    支持 KingSunSha(弱水三千) 
     它的方法就是用 sql 生成sql .
      

  10.   

    楼主:当然是truncate快啦:)