テーブルを作成する場合、Tablespace
パラメータはオプションです。
CREATE TABLE
ステートメントの実行時に、Oracleは、定義されていない場合はデフォルトのステートメントを割り当てます。
デフォルトのデータベースには、「USERS」テーブルスペースがあります。複数のテーブルスペースが定義されている場合、どれが割り当てられますか?
新しいユーザーを作成するときに、オプションで、そのユーザーが作成したオブジェクトのデフォルトのテーブルスペースとデフォルトの一時テーブルスペースを指定できます。例えば:
CREATE USER phil IDENTIFIED BY l33t
DEFAULT TABLESPACE philtablespace
TEMPORARY TABLESPACE philtemp;
ユーザーの作成時に句を省略すると、ユーザーはデータベースのデフォルト値を継承します。これらは次のように照会できます。
SQL> select *
2 from database_properties
3 where property_name like 'DEFAULT%TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------ -------------------- ----------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE USERS Name of default permanent tablespace
SQL>
...そしてそのように変更されました:
alter database default tablespace PHILTS;
alter database default temporary tablespace PHILTEMP;
特定のユーザーのデフォルト値をクエリするには、次のクエリを使用します。
SQL> select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
2 from DBA_USERS
3 where USERNAME='PHIL';
USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
------------------------------ ------------------------------ ------------------------------
PHIL USERS TEMP
SQL>
SELECT DEFAULT_TABLESPACE FROM DBA_USERS
各ユーザーのデフォルトのテーブルスペースを確認します。 ALTER DATABASE DEFAULT TABLESPACE othertablespace;
はデフォルトのテーブルスペースを変更します。通常、いくつかのテーブルスペースがある場合、管理者はCREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE onetablespace
のような新しいユーザーを作成するときにデフォルトのテーブルスペースを設定する必要があります