我正在使用一些使用Oracle數據庫(11g)的舊代碼進行一些分析工作。我有一個代碼表,並希望找到所有調用/使用此表(如外鍵引用)的表,觸發器等。我目前使用Oracle SQL Developer,但不確定是否可以編寫查詢來查找。有沒有一種方法可以在同一個Schema中找到對當前表的所有引用?在此先感謝...查找所有其他使用當前表的表(oracle數據庫)
1
A
回答
0
您可以使用數據字典來執行此操作,但要使用哪個數據字典取決於所討論的對象的類型。因爲你想找到幾種不同類型的對象,所以你需要使用多個字典,如果你想在一個查詢中得到全部結果,你將不得不通過聯合連接幾個查詢。
以下查詢(通過聯合將兩個查詢連接成一個)將顯示具有在xyz模式中引用表xyz的鍵的表以及在模式xyz中使用表xyz的觸發器的名稱(將表和模式名替換爲您正在搜索的:
select 'Table has key referencing this table' as match_type, table_name
from all_constraints
where constraint_type = 'R'
and r_constraint_name in
(select constraint_name
from all_constraints
where constraint_type in ('P', 'U')
and table_name = 'TABLE_XYZ'
and owner = 'SCHEMA_XYZ')
union all
select distinct 'Table is used by this trigger', trigger_name
from all_triggers
where table_name = 'TABLE_XYZ'
and owner = 'SCHEMA_XYZ'
對於其他類型的對象,使用同樣的方法與下一個適當的字典,並連接由工會,你會發現這是很有幫助的。
http://www.oracle.com/pls/tahiti/tahiti.catalog_views
請注意,我在上面的查詢中使用了all_字典。每個都有一個等效的dba_和user_字典。 all_ ones充當當前登錄的用戶(您)可以訪問的所有對象的字典。 dba_用作數據庫中所有對象的字典,但您需要有權使用dba_字典,因此我沒有在上面的查詢中使用它們(如果您有權訪問,請將all_替換爲dba_) 。 user_dictionaries充當當前用戶/模式擁有的所有對象的字典。
0
在表和觸發器之上,您可能還需要檢查是否有任何代碼對象引用了您的表。即。程序,包。
所以,你可以添加第三個查詢:
選擇名稱,類型從all_dependencies其中REFERENCED_OWNER = '& your_table_owner' 和REFERENCED_NAME = '& your_table_name';
相關問題
- 1. 用作數組執行其他查詢的Oracle數據庫表
- 2. 數據庫獲取所有來自其他數據庫表
- 3. Oracle表存在所有數據庫中的查詢表?
- 4. Oracle查詢如何找到表,當它可以到達其他具有相同所有權的表時?
- 5. 從Oracle數據庫獲取所有表
- 6. 在所有數據庫的所有對象中查找表名
- 7. 使用php查找數據庫中表的當前ID使用php
- 8. 正則表達式(Java)查找其他字符前偶數的所有字符
- 9. 打印oracle數據庫中所有表的所有記錄
- 10. 填充從當前表單數據到其他註冊表單
- 11. 如何在oracle數據庫中查看錶的所有列的元數據?
- 12. 從excel中的其他表中查找所有行
- 13. ORACLE SQL查詢表使用標準從其他表
- 14. 查找其他列表
- 15. 查找Oracle表中的具體數據
- 16. 如何在具有Oracle數據庫的HQL查詢中使用當前日期?
- 17. 查找MySQL數據庫表列中的所有字符?
- 18. Java代碼查找數據庫中所有表的唯一鍵
- 19. 查找數據庫中的所有表按主鍵
- 20. 如何查找數據庫表的所有依賴關係?
- 21. 爲postgresql數據庫中的所有表查找min(created_at)
- 22. Azure SQL數據庫查找與特定表關聯的所有數據庫
- 23. ORACLE:查找數據庫中的表知道行數
- 24. 查找數據庫表
- 25. WordPress數據庫中的其他表格
- 26. 從其他表選擇行如果沒有在當前的表
- 27. 使數據庫中的所有表UNLOGGED
- 28. Oracle SQL:使用當前數據更新緩存表
- 29. 查詢其他數據庫
- 30. Mysql - 在所有數據庫中查找表格
完美!非常感謝..它給了我很少的條目在2列 - match_type和Table_name根據查詢。再次感謝。 – Sara