ORA-01658: 无法为表空间 TS_DATA 中的段创建初始范围

ORA-01658: unable to create INITIAL extent for segment in tablespace TS_DATA

当我尝试在我的 User_DB 架构中创建 table 时,我收到一个错误 ORA-01658: unable to create INITIAL extent for segment in tablespace TS_DATA。我 运行 以下查询得到所有 TABLESPACE_NAME:

SELECT * FROM DBA_DATA_FILES;

但我真的不知道我在使用哪个 tablespace 以及如何扩展 tablespace 来解决这个问题。

如错误消息所示,您正在使用 TS_DATA 表空间。您可以通过扩大现有数据文件之一来扩展它:

ALTER DATABASE 
DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TS_DATA.DBF' 
RESIZE 3000M;

或者通过向表空间添加第二个数据文件:

ALTER TABLESPACE ts_data 
ADD DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TS_DATA2.DBF' 
SIZE 1000M;

或者只允许数据文件自动扩展:

ALTER DATABASE 
DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TS_DATA2.DBF'
AUTOEXTEND ON
MAXSIZE UNLIMITED; -- Or some reasonable cap

按照sql

检查现有table空间数据文件和大小
select a.file_id,b.file_name,b.autoextensible,b.bytes/1024/1024,sum(a.bytes)/1024/1024
from dba_extents a , dba_data_files b
where a.file_id=b.file_id
group by a.file_id,b.file_name,autoextensible,b.bytes/1024/1024

然后运行接着sql,会自动扩展数据文件大小

ALTER DATABASE 
DATAFILE '/u01/app/oracle/oradata/XE/TS_DATA.dbf'
AUTOEXTEND ON
MAXSIZE UNLIMITED;