2011-12-19 28 views
1

好吧,我是新來的SQL,不太熟悉Oracle SQLDev,但是我所做的工具要求我訪問Oracle數據庫並收集一些信息。我試圖找出外鍵指向哪個表。在SQL Developer中查找來自外鍵的參考表

該數據庫有數千個表格。

實施例:

我得到的包含以下列[ID,用戶,task_type,task_group]的表(任務)。問題是所有這些值都是對應於另一個表的id,並且表命名約定不直觀。

那麼我怎樣才能找出task_type是指向哪個表?

回答

4
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; 

應該工作

+0

謝謝,這個工作爲了我 – Lex

-1
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