刚才自己测试了下,基本弄明白:
是因为以前开启了autoexted on,设置了maxsize,后来又resize了.
SQL>
SQL> create tablespace test1 datafile 'D:\oracle\test01.dbf' size 10m
2 autoextend off segment space management auto;
Tablespace created
SQL>
SQL> select t.file_name,t.bytes,t.maxbytes from dba_data_files t
2 where t.tablespace_name='TEST1'
3 ;
FILE_NAME BYTES MAXBYTES
-------------------------------------------------------------------------------- ---------- ----------
D:\ORACLE\TEST01.DBF 10485760 0
SQL> alter database datafile 'D:\oracle\test01.dbf' resize 20m;
Database altered
SQL>
SQL> select t.file_name,t.bytes,t.maxbytes from dba_data_files t
2 where t.tablespace_name='TEST1'
3 ;
FILE_NAME BYTES MAXBYTES
-------------------------------------------------------------------------------- ---------- ----------
D:\ORACLE\TEST01.DBF 20971520 0
SQL> alter database datafile 'D:\oracle\test01.dbf' autoextend on;
Database altered
SQL>
SQL> select t.file_name,t.bytes,t.maxbytes from dba_data_files t
2 where t.tablespace_name='TEST1';
FILE_NAME BYTES MAXBYTES
-------------------------------------------------------------------------------- ---------- ----------
D:\ORACLE\TEST01.DBF 20971520 3435972198
SQL> alter database datafile 'D:\oracle\test01.dbf' autoextend on maxsize 30m;
Database altered
SQL>
SQL> select t.file_name,t.bytes,t.maxbytes from dba_data_files t
2 where t.tablespace_name='TEST1';
FILE_NAME BYTES MAXBYTES
-------------------------------------------------------------------------------- ---------- ----------
D:\ORACLE\TEST01.DBF 20971520 31457280
SQL> alter database datafile 'D:\oracle\test01.dbf' resize 40m;
Database altered
SQL>
SQL> select t.file_name,t.bytes,t.maxbytes from dba_data_files t
2 where t.tablespace_name='TEST1';
FILE_NAME BYTES MAXBYTES
-------------------------------------------------------------------------------- ---------- ----------
D:\ORACLE\TEST01.DBF 41943040 31457280
SQL> alter database datafile 'D:\oracle\test01.dbf' resize 20m;
Database altered
SQL> alter database datafile 'D:\oracle\test01.dbf' autoextend off;
Database altered
SQL>
SQL> select t.file_name,t.bytes,t.maxbytes
2 from dba_data_files t
3 where t.tablespace_name='TEST1';
FILE_NAME BYTES MAXBYTES
-------------------------------------------------------------------------------- ---------- ----------
D:\ORACLE\TEST01.DBF 20971520 0
SQL>