【ORACLE】オブジェクト(表や索引)の一覧やDDL文の確認方法


ここではORACLEデータベースでオブジェクト(表や索引)の一覧やDDL文の確認方法を紹介します。

オブジェクト(表や索引)の一覧

オブジェクトの一覧は、DBA_OBJECTSから取得することが出来ます。

SELECT * FROM DBA_OBJECTS';

指定したユーザの所有するオブジェクトの一覧を取得するときは、OWNER列にユーザ名を指定してSQLを実行します。

SELECT * FROM DBA_OBJECTS wHERE OWNER = 'ユーザー名';

指定したオブジェクトタイプ・種類だけに絞ってオブジェクトの一覧を取得するには、OBJECT_TYPEに条件を指定してSQLを実行します。

オブジェクトタイプにはTABLEやINDEX、VIEWの他などオブジェクトタイプを指定することが出来ます。
 ・SEQUENCE
 ・SYNONYM
 ・DATABASE LINK
 ・TRIGGER
 ・FUNCTION、PROCEDURE
 ・PACKAGE、PACKAGE BODY

SELECT * FROM DBA_OBJECTS wHERE OBJECT_TYPE = 'オブジェクトタイプ名';

ログインユーザが所有するオブジェクトの一覧を取得するには、USER_OBJECTSをSELECTします。

SELECT * FROM USER_OBJECTS';

オブジェクト(表や索引)のDDL文

テーブルやインデックスなどのデータベースオブジェクトのDDL文を取得するには、DBMS_METADATAパッケージを使います。

次のSQLでは、SELECT文でDBMS_METADATAパッケージを呼び出してDDL文を取得しています。オブジェクトの名前とユーザー名を指定します。

select
    dbms_metadata.GET_DDL(
                           object_type=>'TABLE' --オブジェクトのタイプ
                           ,name=>'table1' --オブジェクト名
                           ,schema=>'user1' --スキーマ名
                         )
from
    dual
;