2008/12/01

[oracle]最後に発行されたDDL文の日付を取得

本当は、あるテーブル対して発行されたDML文の発行日付がほしかったんだけど、ぐぐっていたら、DDLの方がみつかったので、メモします。
あるテーブルに対して、最後に発行されたDDLの日付は下のように取得できるみたいです。

SELECT OBJECT_NAME, OBJECT_TYPE,
TO_CHAR(CREATED, 'YYYY.MM.DD HH24:MI:SS'),
TO_CHAR(LAST_DDL_TIME, 'YYYY.MM.DD HH24:MI:SS')
FROM USER_OBJECTS
WHERE OBJECT_NAME = 'MY_PACKAGE';

via:オブジェクトの作成・更新日時の取得

上のテーブルのカラムが知りたくなったので、もうちょい調べてみると、

ALL_OBJECTSは、ログインしているユーザーがアクセスできるオブジェクト情報をすべて示します。

DBA_OBJECTSは、データベース内の全てのオブジェクト情報を示します。

USER_OBJECTSは、ログインしているユーザーが所有しているオブジェクト情報をすべて示します。

ALL_OBJECTS/DBA_OBJECTS/USER_OBJECTSの主要項目一覧


列名説明
OWNERオブジェクトの所有者
OBJECT_NAMEオブジェクト名。
SUBOBJECT_NAMEサブオブジェクトの名前 (パーティションなど)
OBJECT_TYPEオブジェクトのタイプ(TABLE、INDEXなど)
CREATEDオブジェクトの作成日時
LAST_DDL_TIMEDDL文でオブジェクトが変更された日時
STATUSオブジェクトの状態(VALID、INVALIDまたはN/A)

via:データベース内のオブジェクト情報(OBJECTS)

と書かれていました。

この手のテーブルはあまり詳しくないので、徐々に使い方を覚えていきたいですね。

0 コメント:

コメントを投稿