こんにちは!シミダイ(@shimidai2100)です。
Oracle Databaseの表領域の削除SQL「drop tablespace」文とポイントを紹介します。
単純な削除SQLは各種メディアやブログで紹介されていますが、この記事では表領域を削除する時の重要なポイントも合わせて紹介します。
この記事を読んで表領域の正しい削除方法をマスターしてください。
この記事の内容
- 表領域の削除SQL「drop tablespace」の基本構文を紹介
- 表領域とOS上のファイルを強制的に削除する「drop tablespace」文
- 表領域削除時に指定できる句を紹介
Contents
表領域の削除SQL:drop tablespace
まずは表領域削除のSQLの基本構文を紹介します。
drop tablespaceは、既に存在している表領域を削除させるSQL文になります。
1 |
drop tablespace <表領域名> <表領域の変更操作>; |
何も指定しないとOracleDatabase上から論理的に削除され、OS上からファイルが削除されないので注意してください。
↓がサンプルSQLになります。
1 |
drop tablespace testtbs; |
表領域とOS上のファイルを強制的に削除するdrop tablespace文
1 2 3 4 |
drop tablespace <表領域名> including contents and datafiles cascade constraints; |
↓はサンプルSQLになります。
1 2 3 4 |
drop tablespace testtbs including contents and datafiles cascade constraints; |
ではそれぞれの指定について紹介していきます。
表領域内に含まれるオブジェクトも削除:including contents
表領域内に含まれるオブジェクトを削除させるために「including contents」を指定します。
1 2 |
drop tablespace <表領域> including contents; |
オブジェクトが含まれている場合、オラクルエラー「ORA-01549: 表領域が空ではありません。」が出力されます。
↓がサンプルSQLになります。
1 2 |
drop tablespace testtbs including contents; |
OS上のファイルも合わせて削除:and datafiles
表領域内に含まれるオブジェクトを削除させるために「and datafiles」を指定します。
1 2 3 |
drop tablespace <表領域名> including contents and datafiles; |
使用する際に必ず「including contents」を使用しないと、
オラクルエラー「ORA-02173: DROP TABLESPACEのオプションが無効です。」が出力されます。
↓がサンプルSQLになります。
1 2 3 |
drop tablespace testtbs including contents and datafiles; |
主キーや一意キーを参照する表から参照整合性制約を削除:cascade constraints
主キーや一意キーを参照する表から参照整合性制約を削除させるために「cascade constraints」を指定します。
1 2 3 |
drop tablespace <表領域名> including contents cascade constraints; |
使用する際に必ず「including contents」を使用しないと、
オラクルエラー「ORA-02173: DROP TABLESPACEのオプションが無効です。」が出力されます。
↓がサンプルSQLになります。
1 2 3 |
drop tablespace testtbs including contents cascade constraints; |
参考:しばちょう先生の試して納得!DBAへの道 第7回 表領域の管理方法を理解