プロが教えるわが家の防犯対策術!

SQL & ORACLE初心者です。最近、セレクト文を使って、テーブル内のデータを取り出すことができるようになりましたが、逆にコラム名からテーブルを検索することはできるでしょうか。

例えば、TABLE_A内のコラムの中にCOLUMN_Aという名前のコラムがあるとして、このコラムが他のテーブルでも使われているかどうか、いるとしたらどのテーブルかを知りたいのです。また、COLUMN_Aと別のCOLUMN_B(それぞれが単独で記載されているテーブル名はわかっているとします)が一緒にある一つのテーブルで使われているかどうか、またそのテーブル名を知りたいときには、どのようなSQLを書けばよいでしょうか。

DBAやその他DBを構築するための知識をお持ちの方、ご回答をお待ちしています。

A 回答 (1件)

USER_TAB_COLUMNS というビューを検索するとわかると思います。



カラム名からテーブル検索
select table_name,column_name from USER_TAB_COLUMNS where column_name = COLUMN_A;


select table_name from USER_TAB_COLUMNS where column_name = COLUMN_B and table_name IN (select table_name from USER_TAB_COLUMNS where column_name = COLUMN_A )

あまりいいのが思いつきませんでした。
また、実際に試してないので間違ってるかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!