Oracle表領域の削除(DROP TABLESPACE)

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP オラクルデータベース運用 Oracle表領域管理

Oracle表領域の削除(DROP TABLESPACE)


スポンサードリンク



Oracle表領域の削除(DROP TABLESPACE)


本項では、Oracle表領域の削除方法について紹介してます。DROP TABLESPACEのオプション解説や実際にテスト環境で実行した結果についても紹介しておりますので、参考にしてください。

以下に表領域作成の実行例を紹介します。以下の実行例は、test_tbs_01表領域の削除しています。
※「INCLUDING CONTENTS」と「AND DATAFILES」を指定し、表領域内のデータをすべて削除します。INCLUDING CONTENTSで削除した表領域は、ごみ箱内には移動しません。このため、削除した表領域を消去またはリカバリすることはできません。INCLUDING CONTENTSを指定すると、表領域の中のすべてのデータベース・オブジェクトを削除できます。データベース・オブジェクトを格納している表領域を削除する場合は、必ずこの句を指定します。表領域が空でない場合にこの句を省略した場合、エラーが戻され、表領域は削除されません。


(1)表領域変更前の確認
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TEST_TBS_01';

TABLESPACE_NAME    FILE_NAME
------------------  ----------------------------------------------------
TEST_TBS_01        C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TEST_TBS_01.DBF


SQL> create table test_tb_01( testid char(3) ) tablespace test_tbs_01;

表が作成されました。

SQL> column owner format a20
SQL> column table_name format a20
SQL> column tablespace_name format a20
SQL> select owner,table_name,tablespace_name from dba_tables where table_name='TEST_TB_01';

OWNER TABLE_NAME TABLESPACE_NAME
-------------------- -------------------- --------------------
SYS TEST_TB_01 TEST_TBS_01

SQL>


(2)表領域削除(※表領域にオブジェクトが存在する場合、オプション削除できないことの確認)
SQL> DROP TABLESPACE test_tbs_01;
DROP TABLESPACE test_tbs_01
*
行1でエラーが発生しました。:
ORA-01549: 表領域が空ではありません。INCLUDING
CONTENTSオプションを使用してください


SQL>


(3)表領域削除
SQL> DROP TABLESPACE test_tbs_01 INCLUDING CONTENTS AND DATAFILES;

表領域が削除されました。


(4)表領域削除後の確認
SQL> select owner,table_name,tablespace_name from dba_tables where table_name='TEST_TB_01';

レコードが選択されませんでした。

SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TEST_TBS_01';

レコードが選択されませんでした。

SQL>



DROP TABLESPACE構文
DROP TABLESPACE tablespace
[ INCLUDING CONTENTS [ {AND | KEEP} DATAFILES ]
[ CASCADE CONSTRAINTS ]
] ;
drop tablespace



DROP TABLESPACE文オプション解説
INCLUDING CONTENTS INCLUDING CONTENTSを指定すると、表領域の中のすべてのデータベース・オブジェクトを削除できます。データベース・オブジェクトを格納している表領域を削除する場合は、必ずこの句を指定します。表領域が空でない場合にこの句を省略した場合、エラーが戻され、表領域は削除されません。

AND DATAFILES INCLUDING CONTENTSを指定するときにAND DATAFILES句を指定すると、関連するオペレーティング・システム・ファイルも削除できます。Oracle Databaseによって、アラート・ログに、削除された各オペレーティング・システム・ファイルに関するメッセージが書き込まれます。この句は、Oracle Managed Filesに対しては不要です。Oracle Managed Filesは、AND DATAFILESを指定しなくてもシステムから削除されます。

KEEP DATAFILES INCLUDING CONTENTSを指定するときにKEEP DATAFILES句も指定すると、関連するオペレーティング・システム・ファイル(Oracle Managed Filesも含む)を処理せずにそのままにしておくことができます。この句を指定する必要があるのは、Oracle Managed Filesを使用しているときに、関連するオペレーティング・システム・ファイルをINCLUDING CONTENTS句で削除しない場合です。

CASCADE CONSTRAINTS CASCADE CONSTRAINTSを指定すると、tablespaceに含まれる表の主キーまたは一意キーを参照する、tablespaceの外の表からすべての参照整合性制約を削除できます。このような参照整合性制約があるときにこの句を省略した場合、エラーが戻され、表領域は削除されません。



スポンサードリンク




    ◎-表領域の概要と管理

    ◎-UNDO表領域(UNDO TABLESPACE)とは?

    ◎-一時表領域(TEMPORARY TABLESPACE)とは?

    ◎-Oracle表領域の作成(CREATE TABLESPACE)

    ◎-Oracle表領域の変更(ALTER TABLESPACE)

    ◎-Oracle表領域の削除(DROP TABLESPACE)

    ◎-SYSTEM表領域が増加する理由

    ◎-SYSAUX表領域が増加する理由

    ◎-表領域の使用率と空き領域確認方法

    ◎-表領域の物理データファイル確認方法

    ◎-表領域拡張手順(データファイル追加)

    ◎-表領域縮小可能サイズ確認手順

    ◎-表領域縮小手順(resize)





スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved