用途
PURGE
文を使用すると、ごみ箱内の表または索引を削除してそのオブジェクトに関連付けられていたすべての領域を解放するか、ごみ箱全体を空にするか、または削除された表領域の一部または全体をごみ箱から削除できます。
注意: PURGE 文はロールバックできません。また、この文によって消去されたオブジェクトはリカバリできません。 |
ごみ箱の内容を参照するには、USER_RECYCLEBIN
データ・ディクショナリ・ビューを問い合せます。かわりにRECYCLEBIN
シノニムを使用することもできます。次の2つの文は、同じ行を戻します。
SELECT * FROM RECYCLEBIN; SELECT * FROM USER_RECYCLEBIN;
関連項目:
|
前提条件
データベース・オブジェクトが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、消去するオブジェクトのタイプに対するDROP
ANY
...システム権限、またはSYSDBA
システム権限が必要です。
セマンティクス
TABLEまたはINDEX
ごみ箱内の消去する表または索引の名前を指定します。ユーザーが指定した元の名前か、オブジェクトの削除時にそのオブジェクトに割り当てられたシステム生成名を指定できます。
ユーザーが指定した名前を指定し、その名前を持つオブジェクトがごみ箱内に1つ以上存在した場合、ごみ箱内に最も長く存在しているオブジェクトが消去されます。
ごみ箱内のオブジェクトのシステム生成名は一意です。そのため、システム生成名を指定すると、その名前を持つ特定のオブジェクトが消去されます。
表が消去されると、その表のすべての表パーティション、LOBとLOBパーティション、索引、およびその他の依存オブジェクトも消去されます。
RECYCLEBIN
この句を使用すると、現行のユーザーのごみ箱を空にできます。そのユーザーのごみ箱からすべてのオブジェクトが消去され、そのオブジェクトに関連付けられていたすべての領域が解放されます。
DBA_RECYCLEBIN
この句は、SYSDBA
システム権限を持っている場合にのみ有効です。これを使用すると、システム全体のごみ箱からすべてのオブジェクトを削除できます。これは、各ユーザーのごみ箱を空にすることと同じです。この操作は、以前のリリースへの移行などの場合に役立ちます。
TABLESPACE tablespace
この句を使用すると、ごみ箱から、指定した領域内に存在するすべてのオブジェクトを消去できます。
USER user この句を使用すると、指定したユーザーが、表領域内の領域を再利用できます。この操作は、特定のユーザーの、特定の表領域に対するディスク領域が割当て制限間近である場合に特に役立ちます。
例
ごみ箱からのファイルの削除例: 次の文は、ごみ箱からtest
表を削除します。複数のバージョンのtest表がごみ箱内に存在する場合、Oracle Databaseでは、ごみ箱内に最も長く存在しているものが削除されます。
PURGE TABLE test;
ごみ箱から削除する表のシステム生成名を判断するには、ごみ箱に対するSELECT
文を発行します。そのオブジェクト名を使用して、次の文に類似した文を発行して表を削除できます。(システム生成名は、次の例に示すものとは異なります。)
PURGE TABLE RB$$33750$TABLE$0;
ごみ箱の内容の削除例: 次の文は、ごみ箱のすべての内容を削除します。
PURGE RECYCLEBIN;