【ORACLE】指定したカラム名・列をもつテーブルの一覧を取得するSQL

ここでは、ORACLEデータベース上で、あるカラム・列を含むテーブルを確認する方法を紹介します。

カラム名から検索する方法

表に含まれるカラム・列の情報は、DBA_TAB_COLUMNSというビューで取得することが出来ます。

次のSQLでは、オーナーがUSER1でCOL1とう名称のカラムを含むテーブルの一覧を取得しています。

select
    a.table_name
from
    dba_tab_columns a
where
    a.owner = 'user1'
    and a.column_name = 'col1'
;

カラムのコメントで検索する方法

カラムのコメントで検索するには、dba_col_commentsも同時に使います。

次のSQLでは、オーナーがUSER1で、列のコメントが「登録日」となっている列を含むテーブルの一覧を取得しています。

select
    a.table_name
from
    dba_tab_columns a
where
    a.owner = 'user1'
    and a.column_name in (select
                              b.column_name
                          from
                              dba_col_comments b
                          where
                              b.owner = 'user1'
                              and b.comments = '登録日';

まとめ

ある列を含むテーブルの一覧を取得するには、DBA_TAB_COLUMNSビューを参照します。

カラムのコメントで検索したい場合は、dba_col_commentsを同時に参照します。

この他にもSELECT文には様々な機能や使い方があります。
詳しくは「【SQL】SELECT文の書き方:サンプル多数あり」で解説していますのでぜひ参考にしてください。