0

Oracle でステージング サーバーにデプロイするストアド プロシージャのリストがあります。展開中にいくつかの手順を見逃してしまいます。

別のスコープ内で呼び出されているすべてのストアド プロシージャのリストを取得する方法はありますか?

4

1 に答える 1

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 オブジェクトなどを除外します。

于 2012-12-21T13:31:48.343 に答える