问题:在oracle中报错ora-01652无法通过128(在escalade表空间中)扩展temp段
解决办法:
一、查看所有临时表的使用情况:
select *
from (Select a.tablespace_name,
to_char(a.bytes / 1024 / 1024, '99,999.999') total_bytes,
to_char(b.bytes / 1024 / 1024, '99,999.999') free_bytes,
to_char(a.bytes / 1024 / 1024 - b.bytes / 1024 / 1024,
'99,999.999') use_bytes,
to_char((1 - b.bytes / a.bytes) * 100, '99.99') || '%' use
from (select tablespace_name, sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(bytes) bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select c.tablespace_name,
to_char(c.bytes / 1024 / 1024, '99,999.999') total_bytes,
to_char((c.bytes - d.bytes_used) / 1024 / 1024, '99,999.999') free_bytes,
to_char(d.bytes_used / 1024 / 1024, '99,999.999') use_bytes,
to_char(d.bytes_used * 100 / c.bytes, '99.99') || '%' use
from (select tablespace_name, sum(bytes) bytes
from dba_temp_files
group by tablespace_name) c,
(select tablespace_name, sum(bytes_cached) bytes_used
from v$temp_extent_pool
group by tablespace_name) d
where c.tablespace_name = d.tablespace_name)
order by tablespace_name
找到无法扩展temp段,记住临时表名;
二、查看下历史表的文件位置以及空间大小
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files
找到上一步中无法扩展temp段临时表名;
三、将无法扩展temp段临时表修改为自动扩展
alter database tempfile '/oracle/oradata/users/osaptemp.data01' autoextend on next 5m maxsize unlimited;
Bingo。。。