Oracleのテーブルの表領域を変更するSQL

Oracleのテーブルの表領域を変更する

Oracleのテーブルは作成後でも別の表領域へ移動できます

テーブルの表領域を変更するSQLはコチラ。

-- テーブルの表領域を変更するSQL
ALTER TABLE {テーブル} MOVE TABLESPACE {変更後の表領域};

例1. テーブルの表領域を変更する

-- テーブルTBL1の表領域をTBSP1に変更するSQL
ALTER TABLE TBL1 MOVE TABLESPACE TABSP1;

上の例ではテーブル「TBL1」の表領域を元の表領域から別の表領域「TABSP1」へ移動します。ちなみにOracleはテーブルだけでなく、インデックスも表領域を移動できます。

テーブルの表領域を変更すると、このテーブルにインデックスがある場合は無効になってしまいます。なのでインデックスを再作成してやる必要があります。

インデックスを再作成するSQL

-- インデックスを再作成する
ALTER INDEX index1 REBUILD;

「ALTER INDEX REBUILD」でインデックス「index1」を再作成して、インデックスを使える状態にしました。

これでテーブルの表領域を変更し、テーブルにひもづくインデックスを有効にすることができました。

以上、Oracleのテーブルの表領域を変更するSQLでした。

コメント

タイトルとURLをコピーしました