Поиск справочной таблицы по внешнему ключу в SQL Developer - PullRequest
1 голос
/ 20 декабря 2011

ОК, так что я новичок в SQL и не очень хорошо знаком с Oracle SQLDev, но инструмент, который я создаю, требует, чтобы я получил доступ к базе данных Oracle и собрал некоторую информацию.Я пытаюсь выяснить, на какую таблицу указывает внешний ключ.

В этой базе данных тысячи таблиц.

Пример:

Я получил таблицу (ЗАДАЧИ), котораясодержит следующие столбцы [id, user, task_type, task_group].Проблема заключается в том, что все эти значения являются идентификаторами, которые соответствуют другой таблице, и соглашение об именах таблиц не является интуитивно понятным.

Так как же узнать, на какую таблицу указывает task_type?

Ответы [ 3 ]

4 голосов
/ 20 декабря 2011
select acc.table_name REFERENCING_TABLE_NAME, acc.column_name REFERENCING_COLUMN_NAME
from all_constraints ac1,
all_constraints ac2,
all_cons_columns acc
where ac1.constraint_type = 'P'
and ac1.table_name = :table_name
and ac2.r_constraint_name = ac1.constraint_name
and ac2.constraint_name = acc.constraint_name;

это должно работать

1 голос
/ 09 февраля 2017

см. Мой пост здесь (2-й ответ) о том, как вы можете добавить это как расширение в sqldeveloper:

Как найти, какие таблицы ссылаются на данную таблицу в Oracle SQL Developer?

0 голосов
/ 12 июня 2014
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
...