コンポジット・パーティションテーブルからサブパーティションとそのデータを削除します。この操作により、サブパーティションのデータは完全に削除されます。このステートメントを実行する前に、データがバックアップされているか、または不要であることを確認してください。
概要
ALTER TABLE table_name DROP SUBPARTITION subpartition_name;パラメータ
パラメータ | 必須 | 説明 | 例 |
| はい | 削除するサブパーティションを含むコンポジット・パーティションテーブルの名前。 |
|
| はい | 削除するサブパーティションの名前。 |
|
注意事項
このコマンドを実行するには、テーブルオーナーまたは特権ユーザーである必要があります。
テーブル内の最後のサブパーティションを削除することはできません。
DROP SUBPARTITIONは、テーブルレベルの排他ロックAccessExclusiveLockを取得します。このロックは、テーブルに対するすべてのデータ操作言語 (DML) およびほとんどのデータ定義言語 (DDL) 操作をブロックします。テーブル上の他の重要な操作をブロックしないように、このステートメントはオフピーク時間帯に実行し、完了までに十分な時間を確保してください。
例
この例では、2022年のアジア リージョンのユーザー データ用サブパーティションを削除して、ストレージ容量を解放します。customer_data テーブルは、コンポジット・パーティション済みテーブルであり、登録年によるパーティショニング(レンジ・パーティショニング)とリージョンによるサブパーティショニング(リスト・サブパーティショニング)が行われています。
よくある質問
Q1: なぜ ORA-00942: テーブルまたはビューが存在しませんエラーが発生するのですか?
A: このエラーは通常、対象テーブルに対する ALTER 権限が不足している場合、またはテーブル名やスキーマ名にスペルミスがある場合に発生します。権限設定を確認し、オブジェクト名が正しいことを確認してください。
Q2: ORA-14006: invalid partition name エラーはなぜ発生するのですか?
A: このエラーは、指定されたサブパーティション名が存在しないか、スペルに誤りがあることを示します。ALL_TAB_SUBPARTITIONS ビューを照会して、正しい名前を確認してください。名前がダブルクォーテーションで囲まれていない場合、データベースは照合のために名前を大文字に変換します。
Q3: なぜ ORA-01031: insufficient privileges エラーが発生するのですか?
A: 対象テーブルに対する ALTER 権限がありません。必要な権限を付与するために、データベース管理者に連絡してください。
Q4: DROP SUBPARTITION を実行した後、データを回復できますか?
A: いいえ。DROP SUBPARTITION は、ごみ箱をバイパスする永続的な削除です。データを回復する唯一の方法は、操作前に作成されたデータベースバックアップから復元することです。
関連 SQL ステートメント
ALTER TABLE DROP PARTITION: パーティションとそのすべてのサブパーティションを削除します。
ALTER TABLE ADD SUBPARTITION: 既存のパーティションに新しいサブパーティションを追加します。
ALTER TABLE TRUNCATE SUBPARTITION: サブパーティション内のデータを削除しますが、その定義は保持します。
ALTER TABLE MERGE SUBPARTITION: 2つのサブパーティションを新しいサブパーティションにマージします。
ALTER TABLE SPLIT SUBPARTITION: 1つのサブパーティションを2つのサブパーティションに分割します。