Oracle でステージング サーバーにデプロイするストアド プロシージャのリストがあります。展開中にいくつかの手順を見逃してしまいます。
別のスコープ内で呼び出されているすべてのストアド プロシージャのリストを取得する方法はありますか?
これを取得するには、 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 オブジェクトなどを除外します。