Oracle SQL Developerでは、テーブルの情報を表示すると、制約を表示して外部キー (つまり、このテーブルによって参照されているテーブル) を確認したり、依存関係を表示してどのパッケージなどがテーブルを参照しているかを確認したりできます。ただし、どのテーブルがテーブルを参照しているかを見つける方法がわかりません。
たとえば、テーブルを見ているとします。どの従業員がどの部署で働いているかを記録するemp
別のテーブルがあり、そのテーブルはテーブルの主キーである を通じてテーブルを参照します。テーブルが存在することを知らなくても、テーブルがテーブルを参照していることを見つける方法 (SQL ではなく、プログラム内の何らかの UI 要素を通じて) はありますか?emp_dept
emp
emp_id
emp
emp_dept
emp
emp_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からのもので、「データベース リンクなしで作成されたビューへの依存関係を含む、現在のユーザーがアクセスできるプロシージャ、パッケージ、関数、パッケージ本体、およびトリガー間の依存関係」を参照します。したがって、このレポートは質問に対して価値がありません。