oracle 10g版本 delete数据以后会自动释放表空间吗

如果不能自动释放表空间,该如何才能释放,请高手赐教!

delete本来就不释放表空间的啊

truncate table è¡¨å --这样才释放表空间

如果你只是delete 部分数据 比如你把id=1的删除掉

但你还想释放表空间,需要借助一下临时表

分步给你执行一下

delete from 表名 where id=1;

commit;--以上为删除数据

 

create table tmp as select * from 表名;--将目前表内的数据暂时放到tmp表中

 

truncate table 表名;--清空原表数据

 

insert into 表名 select * from tmp;--将临时表数据反插回去

commit;

 

drop table tmp;--将临时表删除

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-03

oracle中所有的delete操作几乎都不释放空间


要释放空间的话:


可以删除所有数据的情况:  truncate 

有停机时间的情况: alter table xx move 

没有停机时间的情况:  alter table xx shrink space

from askmaclean

相似回答