4.5 パーティション表の削除について
パーティション表の削除は、非パーティション表の削除と同様です。
Oracle Databaseでは、パーティション表に対するDROP
TABLE
文は、非パーティション表に対する文と同様に処理されます。例外はPURGE
キーワードを使用する場合です。
リソースの制限が発生しないようにするには、パーティション表に対するDROP
TABLE
...PURGE
文を使用して複数のトランザクションで表を削除します。この場合、各トランザクションが、パーティションまたはサブパーティションのサブセットを削除してコミットします。表が削除されるのは、最後のトランザクションが終了したときです。
この動作には、DROP
TABLE
文に対するいくつかの変更が伴います。1つ目は、DROP
TABLE
...PURGE
文が失敗した場合には修正処理を実行でき、必要な場合は文を再発行することです。文は失敗した場所から再開されます。2つ目は、次に示すデータ・ディクショナリ・ビューでSTATUS
列の値をUNUSABLE
に設定すると、DROP
TABLE
...PURGE
文の実行中に表がunusableとマークされることです。
-
USER_TABLES
、ALL_TABLES
、DBA_TABLES
-
USER_PART_TABLES
、ALL_PART_TABLES
、DBA_PART_TABLES
-
USER_OBJECT_TABLES
、ALL_OBJECT_TABLES
、DBA_OBJECT_TABLES
これらのビューのSTATUS
列を問い合せることで、UNUSABLE
とマークされたパーティション表をすべてリストできます。
DBA_TAB_PARTITIONS
およびDBA_TAB_SUBPARTITIONS
など、パーティション化に関連するその他のデータ・ディクショナリ・ビューに対する問合せでは、UNUSABLE
とマークされた表に属する行は除外されます。
表がUNUSABLE
とマークされた後に、その表に対して発行できる唯一の文は別のDROP
TABLE
...PURGE
文で、これは前のDROP
TABLE
...PURGE
文が失敗した場合に限られます。UNUSABLE
とマークされた表に対して発行したその他の文はエラーになります。削除操作が完了するまで、表はUNUSABLE
の状態のままです。
関連項目:
-
パーティション化に関連する情報を含むビューのリストは、「パーティション表および索引の情報の表示」を参照してください
-
DROP TABLE
文の構文は、『Oracle Database SQL言語リファレンス』を参照してください -
この項に記載されているデータ・ディクショナリ・ビューの説明は、『Oracle Databaseリファレンス』を参照してください