Oracle SQL Developerで特定のテーブルを参照しているテーブルを見つけるにはどうすればいいですか? 質問する

Oracle SQL Developerで特定のテーブルを参照しているテーブルを見つけるにはどうすればいいですか? 質問する

Oracle SQL Developerでは、テーブルの情報を表示すると、制約を表示して外部キー (つまり、このテーブルによって参照されているテーブル) を確認したり、依存関係を表示してどのパッケージなどがテーブルを参照しているかを確認したりできます。ただし、どのテーブルがテーブルを参照しているかを見つける方法がわかりません。

たとえば、テーブルを見ているとします。どの従業員がどの部署で働いているかを記録するemp別のテーブルがあり、そのテーブルはテーブルの主キーである を通じてテーブルを参照します。テーブルが存在することを知らなくても、テーブルがテーブルを参照していることを見つける方法 (SQL ではなく、プログラム内の何らかの UI 要素を通じて) はありますか?emp_deptempemp_idempemp_deptempemp_dept

ベストアンサー1

いいえ。Oracle SQL Developer にはそのようなオプションはありません。

クエリを手動で実行するか、他のツールを使用する必要があります (たとえば、PLSQL Developerにはそのようなオプションがあります)。次の SQL は、PLSQL Developer で使用される SQL です。

select table_name, constraint_name, status, owner
from all_constraints
where r_owner = :r_owner
and constraint_type = 'R'
and r_constraint_name in
 (
   select constraint_name from all_constraints
   where constraint_type in ('P', 'U')
   and table_name = :r_table_name
   and owner = :r_owner
 )
order by table_name, constraint_name

r_ownerスキーマで、r_table_nameは参照を探しているテーブルです。名前は大文字と小文字が区別されます。


Oracle SQL Developer のレポート タブには「すべてのテーブル / 依存関係」オプションがあるため注意してください。これは、ALL_DEPENDENCIESからのもので、「データベース リンクなしで作成されたビューへの依存関係を含む、現在のユーザーがアクセスできるプロシージャ、パッケージ、関数、パッケージ本体、およびトリガー間の依存関係」を参照します。したがって、このレポートは質問に対して価値がありません。

おすすめ記事