DROP TABLESPACE
目的
DROP
TABLESPACE
文を使用すると、データベースから表領域を削除できます。
削除した表領域は、ごみ箱内には移動しません。このため、削除した表領域を消去またはリカバリすることはできません。
関連項目:
表領域の作成および変更の詳細は、「CREATE TABLESPACE」および「ALTER TABLESPACE」を参照してください。
前提条件
DROP
TABLESPACE
システム権限が必要です。アクティブ・トランザクションを保持するロールバック・セグメントを含む場合は、表領域を削除できません。
構文
drop_tablespace::=
IF NOT EXISTS
既存の表領域を削除するには、IF EXISTS
を指定します。
ALTER
とともにIF NOT EXISTS
を指定すると、ALTER/DROP
文のIF EXISTS
句が正しくないというエラーが発生します。
セマンティクス
tablespace
削除する表領域(消失書込み保護更新が格納されているシャドウ表領域を含む)の名前を指定します。
表領域の状態がオンラインまたはオフラインのどちらであっても、その表領域を削除できます。実行中のトランザクション内のSQL文で、表領域内のいずれかのオブジェクトにアクセスすることがないように、表領域はオフラインにしてから削除することをお薦めします。
SYSTEM
表領域は削除できません。SYSAUX
表領域は、SYSDBA
システム権限を持ち、UPGRADE
モードでデータベースを起動した場合にのみ削除できます。
削除する表領域がデフォルト表領域または一時表領域として割り当てられていたユーザーにアラートを出す必要がある場合があります。表領域が削除された後では、このようなユーザーはオブジェクトに領域を割り当てたり、表領域内で領域をソートすることはできません。ALTER
USER
文を使用すると、ユーザーに新しいデフォルト表領域および一時表領域を割り当てることができます。
以前に表領域から削除し、ごみ箱に移動したオブジェクトがごみ箱から消去されます。表領域に関連するすべてのメタデータ、および表領域に含まれるすべてのデータファイルと一時ファイルが、データ・ディクショナリから削除されます。また、表領域にあるOracle Managed Filesのデータファイルおよび一時ファイルが、オペレーティング・システムから自動的に削除されます。その他のデータファイルおよび一時ファイルは、INCLUDING
CONTENTS
AND
DATAFILES
を指定しないかぎり、オペレーティング・システムから削除されません。
この文を使用して表領域グループを削除することはできません。ただし、tablespace
が表領域グループ内で唯一の表領域である場合、その表領域グループもデータ・ディクショナリから削除されます。
表領域の削除には、次の制限事項があります。
-
ドメイン索引またはドメイン索引によって作成されたオブジェクトを格納している表領域は削除できません。
-
いずれかのインスタンスによって使用されている場合、またはコミットされていないトランザクションのロールバックに必要なUNDOデータを含む場合は、UNDO表領域を削除できません。
-
データベースのデフォルト表領域に指定されている表領域は削除できません。この表領域を削除するには、まず他の表領域をデフォルト表領域として再割当てする必要があります。
-
データベースのデフォルトの一時表領域グループに属する一時表領域は削除できません。この表領域を削除するには、まずその表領域をデータベースのデフォルトの一時表領域グループから削除する必要があります。
-
既存のセッションで使用されているセグメントが含まれる場合、一時表領域を削除できません。この場合は、エラーは発生しません。データベースは、既存のセッションで使用されているセグメントがなくなるまで待機し、表領域を削除します。
-
ある表領域を削除すると他の表領域の主キー制約または一意制約が無効になる場合、
INCLUDING
CONTENTS
およびCASCADE
CONSTRAINTS
句を指定してもその表領域を削除できません。たとえば、削除する表領域に主キー列索引が含まれており、主キー列自体が別の表領域に存在する場合、その別の表領域内の主キー制約を手動で無効にしないかぎり、表領域を削除できません。
関連項目:
ドメイン索引の詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』および『Oracle Database概要』を参照してください。
{ DROP | KEEP } QUOTA
DROP
QUOTA
を指定すると、表領域のすべてのユーザー割当てを削除できます。KEEP
QUOTA
を指定すると、表領域のすべてのユーザー割当てを保持できます。デフォルトはKEEP
QUOTA
です。
DBA_TS_QUOTAS
データ・ディクショナリ・ビューを問い合せると、表領域のすべてのユーザー割当てを表示できます。
INCLUDING CONTENTS
表領域(消失書込み保護更新が格納されている表領域を含む)の内容をすべて削除するには、INCLUDING
CONTENTS
を指定します。データベース・オブジェクトを格納している表領域を削除する場合は、必ずこの句を指定します。表領域が空でない場合にこの句を省略した場合、エラーが戻され、表領域は削除されません。
1つの表のパーティションまたはサブパーティションが表領域に(すべてではなく)一部含まれていると、INCLUDING
CONTENTS
を指定してもDROP
TABLESPACE
コマンドが正常に実行されません。パーティション表のすべてのパーティションまたはサブパーティションがtablespace
に存在する場合、DROP
TABLESPACE
... INCLUDING
CONTENTS
は、tablespace
を削除し、関連付けられた索引セグメント、LOBデータ・セグメントと索引セグメント、ネストした表のデータ・セグメント、および他の表領域にある表の索引セグメントも削除します。
パーティション化された索引構成表の場合、すべての主キー索引セグメントがこの表領域に存在していれば、他の表領域にあるオーバーフロー・セグメントや関連するマッピング表もすべて削除されます。主キー索引セグメントのいくつかが存在しない場合、文は正常に実行されません。その場合、その表領域を削除する前に、ALTER
TABLE
... MOVE
PARTITION
を使用して、それらの主キー索引セグメントをこの表領域に移動し、この表領域にオーバーフロー・データ・セグメントが存在しないパーティションを削除します。また、パーティション化された索引構成表も削除します。
表領域がマテリアライズド・ビューのマスター表を含む場合、マテリアライズド・ビューは無効になります。
表領域がマテリアライズド・ビュー・ログを含む場合、このログおよびその表に関連付けられているダイレクト・パス・インサートのその他のリフレッシュ情報は削除されます。
INCLUDING
CONTENTS
を指定するときにAND
DATAFILES
句を指定すると、関連するオペレーティング・システム・ファイルも削除できます。Oracle Databaseによって、アラート・ログに、削除された各オペレーティング・システム・ファイルに関するメッセージが書き込まれます。この句は、Oracle Managed Filesに対しては不要です。Oracle Managed Filesは、AND
DATAFILES
を指定しなくてもシステムから削除されます。
INCLUDING
CONTENTS
を指定するときにKEEP
DATAFILES
句も指定すると、関連するオペレーティング・システム・ファイル(Oracle Managed Filesも含む)を処理せずにそのままにしておくことができます。この句を指定する必要があるのは、Oracle Managed Filesを使用しているときに、関連するオペレーティング・システム・ファイルをINCLUDING
CONTENTS
句で削除しない場合です。
CASCADE
CONSTRAINTS
を指定すると、tablespace
に含まれる表の主キーまたは一意キーを参照する、tablespace
の外の表からすべての参照整合性制約を削除できます。このような参照整合性制約があるときにこの句を省略した場合、エラーが戻され、表領域は削除されません。
例
表領域の削除: 例
次の文は、tbs_01
表領域を削除し、tbs_01
に含まれる主キーおよび一意キーを参照するすべての参照整合性制約を削除します。
DROP TABLESPACE tbs_01 INCLUDING CONTENTS CASCADE CONSTRAINTS;
シャドウ表領域の削除: 例
次の文は、シャドウ表領域内の追跡対象データを別のシャドウ表領域に移動させます。これは、十分な空き領域のあるPDBにシャドウ表領域がある場合にのみ機能します。
DROP TABLESPACE <shadow_tablespace_name>
次の文は、シャドウ表領域とその内容をすべて削除します。追跡対象データはすべて失われます。
シャドウ表領域とその内容の削除: 例
DROP TABLESPACE <shadow_tablespace_name> INCLUDING CONTENTS
オペレーティング・システム・ファイルの削除: 例
次の例は、tbs_02
表領域およびそれに関連するすべてのオペレーティング・システムのデータファイルを削除します。
DROP TABLESPACE tbs_02 INCLUDING CONTENTS AND DATAFILES;