2012-12-21 82 views
0

我有一個存儲過程列表,用於在Oracle中將其部署到臨時服務器。我最終在部署時丟失了一些程序。檢索Oracle中所有互連存儲過程的列表

有沒有辦法獲得在另一個範圍內調用的所有存儲過程的列表?

+0

我刪除了提及「工具」作爲購物的問題是明確地遠離話題上所有的堆棧交換,請參閱[常見問題]。 – Ben

回答

2

您可以使用ALL_DEPENDENCIES視圖來獲取此信息。

ALL_DEPENDENCIES描述當前用戶可以訪問的包,觸發器,過程和函數之間的依賴關係。 USER_DEPENDENCIES對當前用戶和DBA_DEPENDENCIES擁有的對象(如果有權訪問數據庫中的所有內容)執行相同操作。

以下內容將爲您提供當前用戶依賴其他程序包(該用戶有權訪問的功能過程)的程序包,過程和函數列表。

select * 
    from all_dependencies 
where type = 'PACKAGE BODY' 
    and owner = user 
    and type in ('PROCEDURE','FUNCTION','PACKAGE','PACKAGE BODY') 
    and referenced_type in ('PROCEDURE','FUNCTION','PACKAGE','PACKAGE BODY') 

可以了一下週圍玩,如果你想,比如我可能會排除SYS對象等