2016-02-01 2 views
0

У меня есть таблица A со столбцом X. Столбец X ДОЛЖЕН существовать в таблице B тоже, однако, имя таблицы B мне неизвестно.Найти столбец в отдельной таблице

Есть ли способ найти таблицу B?

Я использую базу данных Oracle и SQL Developer. Я не вижу ничего в помощи в разделах contraints/dependents таблицы A. Я подозреваю, что связь между столбцом X и таблицей B рассматривается приложением, взаимодействующим с базой данных.

ответ

0

Попробовать следующее:

select * 
from dba_tab_columns 
where column_name = 'COLUMN_X' 
    and table_name != 'TABLE_A' 

Вы могли бы даже изучить все процедуры, пакет, триггеры и т.д., используя вашу колонку, чтобы понять, как они манипулируют данные в столбце; чтобы найти эти объекты, попробуйте:

select NAME, TYPE, OWNER 
from dba_source 
where upper(text) like '%COLUMN_X%' 
+0

Хорошая идея, но что, если столбец X называется по-разному в таблице B? Это скорее всего будет столбцом идентификатора в таблице B. – user3341082

+0

Таким образом, я не вижу решения, отличного от сканирования всех столбцов всех таблиц, чтобы проверить, совпадают ли значения с вашим столбцом, но это может быть больше чем что-то делать на реальной базе данных – Aleksej

+0

Вы даже можете проверить источник базы данных, чтобы понять, как используется ваш столбец; просто отредактировал мой ответ, чтобы помочь найти эти объекты – Aleksej

0

DBA_TAB_COLUMNS Таблица описывает столбцы всех таблиц, просмотр и кластеров в базе данных. Обратитесь к документации Oracle. Оба DBA_TAB_COLUMNS и ALL_TAB_COLUMNS предоставляют подобную информацию, а ALL_TAB_COLUMNS предоставить информацию в доступной для текущего пользователя

Приведи Oracle Документация - https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4146.htm#REFRN23277

https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2094.htm#I1020277

Смежные вопросы