各テーブルスペースには、データの保存に使用する1つ以上のデータファイルがあります。
データファイルの最大サイズは、データベースのブロックサイズによって異なります。デフォルトでは、データファイルあたり最大32GBが残っていると思います。
実際の制限が32GBかどうかを確認するには、次のコマンドを実行します。
select value from v$parameter where name = 'db_block_size';
得られた結果を下の最初の列と比較すると、最大データファイルサイズがわかります。
Oracle Personal Edition 11g r2を使用していますが、デフォルトのインストールでは、8,192ブロックサイズ(データファイルあたり32GB)でした。
Block Sz Max Datafile Sz (Gb) Max DB Sz (Tb)
-------- -------------------- --------------
2,048 8,192 524,264
4,096 16,384 1,048,528
8,192 32,768 2,097,056
16,384 65,536 4,194,112
32,768 131,072 8,388,224
このクエリを実行して、所有しているデータファイル、それらが関連付けられているテーブルスペース、および現在最大ファイルサイズを設定しているもの(前述の32GBを超えることはできません)を見つけることができます。
select bytes/1024/1024 as mb_size,
maxbytes/1024/1024 as maxsize_set,
x.*
from dba_data_files x
MAXSIZE_SETは、データファイルを設定した最大サイズです。 AUTOEXTENDオプションをONに設定したかどうかも関係します(その名前はそれが意味することを行います)。
データファイルの最大サイズが小さい場合、または自動拡張がオンになっていない場合は、次のコマンドを実行できます。
alter database datafile 'path_to_your_file\that_file.DBF' autoextend on maxsize unlimited;
ただし、そのサイズが32GB以下の場合、自動拡張がオンになっている場合は、はい、テーブルスペース用に別のデータファイルが必要です。
alter tablespace system add datafile 'path_to_your_datafiles_folder\name_of_df_you_want.dbf' size 10m autoextend on maxsize unlimited;