当通过oracle中的create table ... as select 语句创建一张新表时,新表的数据量为比较大,如10亿,这时sql*plus很可能就会提示“ora-01653: ...”错误信息。
表空间大小不够,需要为表空间增加数据文件。
1、查询表空间剩余字节大小
select tablespace_name, sum(bytes)/1024/1024 as "free space(m)"
from dba_free_space
where tablespace_name = '&tablespace_name'
group by tablespace_name;
注:如果是临时表空间,请查询dba_temp_free_space
select tablespace_name, free_space/1024/1024 as "free space(m)"
from dba_temp_free_space
where tablespace_name = '&tablespace_name';
2、如果不知道表空间数据文件目录规划,可以先查询出表空间所有数据文件
select tablespace_name, file_id, file_name, bytes/1024/1024 as "bytes(m)"
from dba_data_files
where tablespace_name = '&tablespace_name';
注:如果是临时表空间,请查询dba_temp_files
select tablespace_name, file_id, file_name, bytes/1024/1024 as "space(m)"
from dba_temp_files
where tablespace_name = '&tablespace_name';
3、为空间不足的表空间增加数据文件
alter tablespace &tablespace_name add datafile '/oradata/users01.dbf' size 2g;
注:如果要为临时表空间扩容,使用下面的语句
alter tablespace &tablespace_name add tempfile '/oradata/temp01.dbf' size 2g;