oracle删除表,释放表空间,需要通过truncate table xx,然后drop table xxx 来释放,或者直接通过 drop table xxx purge;
创新互联公司-专业网站定制、快速模板网站建设、高性价比灌云网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式灌云网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖灌云地区。费用合理售后完善,十载实体公司更值得信赖。
示例如下:
1、创建测试表,
create table test_space(id number, name varchar2(20));
2、插入样例数据,
insert into test_space
select level, 'test_space_'||level
from dual
connect by level100000
3、查看该表存储,占用3145728B大小,
select * from user_segments t where segment_name = upper('test_space');
4、truncate清空表数据,truncate table test_space,然后再次查询表存储,存储变为65536B,已释放;
truncate table test_space;
select * from user_segments t
where segment_name = upper('test_space');
5、把表再次删除后,存储已释放;
drop table test_space;
select bytes from user_segments t
where segment_name = upper('test_space');
1、首先使用ORACLE系统用户登录PL/SQL管理工具,如system/admin
2、在SQL脚本中,编写删除表空间的sql语句并执行,drop tablespace 表空间名称;
3、如果想把一个用户下的所有数据库表都清除掉,则可以执行下面的语句,drop user 用户名 cascade;
4、执行上面的语句时,在水平下方则会显示 正在执行...
5、待执行后,则可以使用被删除的用户登录一下PL/SQL。
扩展资料:
一、Oracle的闪回删除的原理:
如果使用DROP TABLE指令删除表,该表不会从数据库中立即删除,而是保持原表的位置,但是将删除的表重新命名,并将删除的表信息存储在回收站中,回收站记录了被删除表的新名字和原名字。
显然,此时被删除的表所占有的空间没有立即被释放,变成数据库可以使用的潜在空间,记录在回收站中的信息会保留一段时间,直到回收站的时间不够或者使用PURGE指令删除回收站中的记录。
回收站是一个逻辑结构,不具有物理数据结构,只要删除的表信息记录在回收站中就可以通过闪回技术恢复删除的表。
二、世界上的所有行业几乎都在应用Oracle技术,《财富》100强中的98家公司都采用Oracle技术。Oracle是第一个跨整个产品线开发和部署100%基于互联网的企业软件的公司。Oracle是世界领先的信息管理软件供应商和世界第二大独立软件公司。
帮助中国软件企业在快速增长的经济大潮中取得成功,促进中国软件业的发展,同时也为中国的广大用户提供性价比高、安全企业软件,为他们的业务增长作出贡献。
甲骨文收购了Sun,把Java收入囊中,对于Java这一最受全球编程者推崇的语言的前途业界有很多的担心,虽然甲骨文明确表示将继续开发JDK。
IBM公司表示,IBM、甲骨文以及其他Java社区伙伴在OpenJDK上的协同工作,将加快Java平台的创新。甲骨文和IBM的合作也标志着企业客户可以继续凭借Java社区来提供更加开放、灵活和创新新技术,以促进其业务增长。
1、创建两个测试表,指定表空间TEMP;
create table test_ts_1(id number) tablespace temp;
create table test_ts_2(id number) tablespace temp;
2、查询表空间下的表;可以发现刚建的两张表;
select * from user_tables t where tablespace_name = 'TEMP';
3、编写脚本,删除TEMP表空间下的所有表;
begin
for v_cur in (select distinct t.table_name from user_tables t where tablespace_name = 'TEMP') loop
execute immediate 'drop table '||v_cur.table_name||' purge';
end loop;
end;
4、再次查询,可以发现TEMP表空间下的表,已经被删除;
select * from user_tables t where tablespace_name = 'TEMP'
删除无任何数据对象的表空间:
首先使用PL/SQL界面化工具,或者使用oracle自带的SQL
PLUS工具,连接需要删除的表空间的oracle数据局库。
确认当前用户是否有删除表空间的权限,如果没有
drop
tablespace,请先用更高级的用户(如sys)给予授权或者直接用更高级的用户。
用drop
tablespace
xxx
,删除需要删除的表空间。
删除有任何数据对象的表空间
使用drop
tablespace
xxx
including
contents
and
datafiles;来删除表空间。
注意事项:
如果drop
tablespace语句中含有datafiles,那datafiles之前必须有contents关键字,不然会提示ora-01911错误
首先查看temp是不是某些用户的默认表空间
SELECT USERNAME,TEMPORARY_TABLESPACE FROM DBA_USERS;
如果有用户的默认临时表空间是temp的话,建议进行更改
alter user xxx temporary tablespace tempdefault;
设置tempdefault为默认临时表空间
alter database default temporary tablespace tempdefault;
然后用你列出来的语句删除即可
drop tablespace temp including contents and datafile;
即便丢失了所有的临时表空间,只要不是数据库当中用到了order by、子查询、group by、distinct等需要消耗临时表空间的语句(而且要比较大才行,小的话就直接用pga的SORT_AREA区了),那么也不会对业务造成错误导致中断,发现问题之后只需要新建一个临时表空间就可以了。你要是了解备份恢复的话,实际上在进行备份的时候临时表空间都不会进行备份,而只是有一个创建临时表空间的语句而已。