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

Oracleの表領域の変更について。

この記事の内容はコチラです

  • 表領域を変更したい
  • 「ALTER TABLE ~ MOVE ~」の使い方

今回は、Oracleのテーブルの表領域を変更について紹介します!

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

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

構文

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

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

Oracleの表領域の変更は「ALTER TABLE ~ MOVE ~」を使います。

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

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

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

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

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

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

「ALTER INDEX REBUILD」でインデックス「index1」を再作成して、インデックスを使える状態にしました。これでテーブルの表領域を変更し、テーブルにひもづくインデックスを有効にすることができました。

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

コメント