2017-08-04 86 views
0

如何檢查某個表的特定列是否在Oracle中的其他對象中使用?例如,我有一個表EMPLOYEE其中有一列獎金。我需要檢查此表的這一列是否已被數據庫中的其他任何對象使用,如查看等。查看數據庫中某個表的某列是否已被使用

+0

看(https://stackoverflow.com/questions/4852993/query-to -search-all-packages-for-table-and-or-column),也許這就是你想要的 – I3rutt

+1

你嘗試過什麼嗎?對於函數,proc或包等程序單元,您可以查詢all_source/dba_source/user_source,但這可能會非常棘手,因爲程序可能不會明確引用列名。可以在all_constraints中檢查引用(外鍵關係)中列的使用。 – GurV

回答

0

你可以試試下面的SQL來檢查表和列在這[鏈接]對象定義中使用的

SELECT 1 
    FROM all_source 
WHERE type IN ('PROCEDURE','PACKAGE BODY','FUNCTION') 
    AND text LIKE '%EMPLOYEE%' 
    AND text LIKE '%BONUS%'; 
+0

該方法只能識別表名和列名在同一行的情況。 – Kirby

+0

或者可以用來代替 –

相關問題