状態がある可能性のあるすべてのパッケージを一覧表示できるようにすることが必要なようです。
探しているのは、グローバル変数または定数を持つパッケージだけです。単一のパッケージの場合、これは検査によって非常に簡単です。ただし、スキーマ内のすべてのパッケージを調べるには、PL / Scopeを使用できます:
まず、スキーマの所有者としてログインし、セッションでPL/スコープをオンにします。
alter session set plscope_settings='IDENTIFIERS:ALL';
次に、すべてのパッケージ本体を再コンパイルします。
次に、このクエリを実行して、パッケージレベルで宣言されているすべての変数と定数を見つけます。
select object_name AS package,
type,
name AS variable_name
from user_identifiers
where object_type IN ('PACKAGE','PACKAGE BODY')
and usage = 'DECLARATION'
and type in ('VARIABLE','CONSTANT')
and usage_context_id in (
select usage_id
from user_identifiers
where type = 'PACKAGE'
);
結果のパッケージのリストがターゲットになることをお勧めします。
11gR2を使用している場合、定数によってこの問題が発生することはなくなったため、代わりに次のクエリを使用します。
select object_name AS package,
type,
name AS variable_name
from user_identifiers
where object_type IN ('PACKAGE','PACKAGE BODY')
and usage = 'DECLARATION'
and type = 'VARIABLE'
and usage_context_id in (
select usage_id
from user_identifiers
where type = 'PACKAGE'
);