小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


【Oracle】特定のテーブルが削除された日時を調べる方法

f:id:replication:20150630010456j:plain

はじめに

Oracleで、あるテーブルがいつ削除されたものかを調べるには、RECYCLEBINテーブルを見ると良いです。

RECYCLEBINテーブル

RECYCLEBINをdescすると、以下の結果が得られます。

OBJECT_NAMEはオブジェクトの名前でテーブル以外のファンクションやインデックスなども含まれます。
TYPE='TABLE'のレコードで絞れば、テーブルオブジェクトだけを抽出できます。
CREATETIMEカラムが作成された日時、DROPTIMEが削除された日時です。

名前             Null     タイプ
-------------- -------- ------------ 
OBJECT_NAME    NOT NULL VARCHAR2(30) 
ORIGINAL_NAME           VARCHAR2(32) 
OPERATION               VARCHAR2(9)  
TYPE                    VARCHAR2(25) 
TS_NAME                 VARCHAR2(30) 
CREATETIME              VARCHAR2(19) 
DROPTIME                VARCHAR2(19) 
DROPSCN                 NUMBER       
PARTITION_NAME          VARCHAR2(32) 
CAN_UNDROP              VARCHAR2(3)  
CAN_PURGE               VARCHAR2(3)  
RELATED        NOT NULL NUMBER       
BASE_OBJECT    NOT NULL NUMBER       
PURGE_OBJECT   NOT NULL NUMBER       
SPACE                   NUMBER      
特定のテーブルの削除された日時を調べる

たとえば、以下のようなクエリでテーブルの削除日時を知ることができます。

SELECT OBJECT_NAME,ORIGINAL_NAME,CREATETIME,DROPTIME FROM RECYCLEBIN WHERE TYPE='TABLE';[f:id:replication:20150630010456j:plain]